MikroCLAW
MikroCLAW is an MCP server that lets Claude Code monitor, diagnose, and manage MikroTik RouterOS devices through 100 structured tools (78 read-only, 22 write), plus a live web dashboard (Pulse) and AI-powered features.
๐ Monitoring & Diagnostics (always active)
System: Resource usage, health sensors (temp/voltage/fans), license, packages, uptime, board info
Interfaces & L2: All interfaces, Ethernet, bridges, VLANs, link status, live throughput sampling
IP & Routing: IP addresses, ARP, routing table, DHCP servers/leases/networks, DNS settings/cache, NTP, IP pools
Firewall & NAT: Filter rules, NAT, mangle, address lists, connection tracking, IPv6 firewall
WiFi & CAPsMAN: Interfaces, client registrations, radios, managed APs
VPN & Tunnels: WireGuard interfaces/peers, PPP active sessions/accounts, IPsec peers
Routing Protocols: BGP sessions, OSPF neighbors
Hotspot & AAA: Servers, active users, accounts, RADIUS
Security & Audit: Users, groups, active sessions, certificates (with expiry), IP services
Diagnostics: Ping, traceroute, live logs, Netwatch, update checks, MNDP/CDP/LLDP neighbors
Generic Read:
rest_getfor any RouterOS REST API path
โ๏ธ Configuration & Management (requires MIKROCLAW_ALLOW_WRITE=true)
Enable/disable interfaces and IP services
Firewall: add/delete/toggle rules, manage address lists, add NAT rules
Network: assign IPs, add static routes, set DNS servers, pin DHCP leases, add static DNS entries
VPN & Users: add WireGuard peers, PPPoE/PPP accounts, hotspot users, IPv6 addresses
QoS: add simple queues for bandwidth limiting
System: set identity, create config backups, reboot router
Generic Write:
rest_writefor any PUT/PATCH/DELETE/POST operation
๐ค AI-Powered Features
Twin (Packet Simulator): Trace hypothetical packets through live firewall/NAT/routing rules and test new rules before applying
Sentinel (Botnet Detection): Fingerprint per-device behavior from connection tracking to detect infected IoT devices, miners, and scanners โ no signatures needed
Chronicle (Config Time Machine): Snapshot configs with hashing, diff live vs. last snapshot with risk assessment (new users, open ports, persistence indicators)
Replay (Retrospective RCA): Reconstruct telemetry history to explain past incidents (e.g., "why was it slow yesterday?")
Concierge (Business Reports): Translate telemetry into business signals for ISPs โ active subscribers, idle accounts, bandwidth thieves, upgrade recommendations
Role Detection: Classify router function (gateway, BGP router, AP, BRAS, VPN hub, etc.) with evidence and confidence scores
๐ Pulse Dashboard A live web interface (via Server-Sent Events) showing CPU/memory/disk/temperature, WAN status, interface matrix with live throughput, client list (DHCP + PPPoE + hotspot + WiFi), service risk indicators, live log stream, deterministic trend predictions, and an optional AI Analyst card narrating network health and anomalies.
๐ Security
Read-only by default; writes require explicit opt-in flag
Credentials isolated in
.env, never exposed in chatTLS support, least-privilege user recommended
All write operations leave audit comments
Provides tools for monitoring and managing MikroTik RouterOS devices via REST API, including system info, interfaces, DHCP, firewall, routing, and more.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MikroCLAWshow active DHCP leases"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ฆ MikroCLAW
MikroTik + CLAW (Claude) โ kendalikan RouterOS dari percakapan Claude Code
MCP server yang membuat Claude Code bisa mengakses, memonitor, dan mengelola perangkat MikroTik RouterOS lewat tool ber-skema โ plus dashboard monitoring live "Pulse".
MikroCLAW menjembatani Claude Code dengan RouterOS melalui REST API RouterOS v7
(HTTPS). Alih-alih Anda mengetik perintah curl/ssh manual, Claude memanggil
tool seperti dhcp_leases atau firewall_filter_rules sebagai pemanggilan ber-skema
โ aman, terstruktur, dan kredensial tidak pernah bocor ke jendela chat.
"Siapa saja klien DHCP yang aktif?" ยท "Interface mana yang down?" ยท "Blokir IP 10.0.0.5." โ cukup ketik dalam bahasa biasa, Claude memanggil tool yang tepat.
โจ Kenapa MikroCLAW?
๐ Read-only secara default | Aman untuk eksplorasi & monitoring tanpa risiko mengubah konfigurasi. |
๐ง Operasi write digerbang | Setiap tool yang mengubah config dikunci flag |
๐ Kredensial via | Tidak pernah muncul di chat, tidak ikut ter-commit. |
๐งฉ 100 tool ber-skema | 78 read + 22 write, termasuk lima fitur cerdas (Twin/Sentinel/Chronicle/Replay/Concierge), |
๐ง 12 Agent Skills | Playbook siap pakai: health-check, audit firewall, audit keamanan, overview jaringan, troubleshoot, backup-snapshot, deteksi-peran + 5 fitur cerdas baru. |
๐ค 5 fitur cerdas AI | Twin (simulator what-if paket), Sentinel (deteksi botnet/IoT terinfeksi tanpa signature), Chronicle (mesin waktu konfigurasi + deteksi intrusi), Replay (RCA retrospektif "kenapa tadi lemot"), Concierge (laporan bisnis RT-RW net). |
๐ MikroCLAW Pulse | Dashboard web monitoring live per-detik (read-only, via Server-Sent Events). |
โ๏ธ Installer satu-baris | Windows (PowerShell) & macOS/Linux (bash) โ pasang |
๐ Tanpa lock-in v7 | RouterOS v6 cukup ganti lapis transport ke API biner; daftar tool tetap. |
Versi terkini: v1.7.0 ยท Python 3.10+ ยท RouterOS v7.1+ ยท Lisensi Apache-2.0.
๐ Dokumen lain:
docs/FITUR.md(ikhtisar fitur ringkas) ยทMANUAL_BOOK.md(panduan tutorial langkah demi langkah).
Daftar Isi
Related MCP server: UniFi MCP Server
Bagaimana Claude Code mengakses MikroTik
Claude Code tidak punya driver MikroTik bawaan. MikroCLAW berperan sebagai MCP server (Model Context Protocol): proses lokal yang mengekspos sekumpulan tool. Claude Code memanggil tool itu; MikroCLAW menerjemahkannya menjadi panggilan REST API ke RouterOS, lalu mengembalikan JSON hasilnya.
flowchart LR
subgraph local["๐ป Mesin Anda (lokal)"]
CC["Claude Code<br/>(CLI ยท IDE ยท Web)"]
MC["๐ฆ
MikroCLAW<br/>MCP server + Pulse"]
ENV[(".env<br/>host ยท user ยท pass")]
end
ROS["๐ก RouterOS<br/>(MikroTik v7)"]
BROWSER["๐ Browser<br/>(Pulse dashboard)"]
CC -- "panggil tool (stdio MCP)" --> MC
MC -- "hasil JSON" --> CC
MC -- "HTTPS /rest/... (REST API v7)" --> ROS
ROS -- "JSON" --> MC
ENV -. "dibaca saat start" .-> MC
BROWSER -- "SSE live per-detik" --> MC
classDef box fill:#10182a,stroke:#1f2d44,color:#e6edf3;
class CC,MC,ROS,BROWSER box;Alurnya (mis. "siapa saja klien DHCP yang aktif?"):
sequenceDiagram
autonumber
participant U as ๐ค Anda
participant C as Claude Code
participant M as ๐ฆ
MikroCLAW
participant R as ๐ก RouterOS
U->>C: "siapa klien DHCP yang aktif?"
C->>M: panggil tool dhcp_leases (MCP/stdio)
M->>R: GET /rest/ip/dhcp-server/lease (Basic Auth dari .env)
R-->>M: JSON daftar lease
M-->>C: hasil terstruktur
C-->>U: ringkasan klien DHCPRinciannya:
Anda menulis prompt biasa, mis. "siapa saja klien DHCP yang aktif?".
Claude Code memilih tool
dhcp_leasesdan memanggilnya lewat protokol MCP (stdio).MikroCLAW (
client.py) mengirimGET https://<router>/rest/ip/dhcp-server/leasedengan Basic Auth dari.env.RouterOS membalas JSON; MikroCLAW meneruskannya ke Claude.
Claude meringkas/menyajikan hasil untuk Anda.
RouterOS REST memetakan path konsol ke URL secara langsung, contoh:
Perintah konsol RouterOS | Operasi REST |
|
|
|
|
tambah item |
|
ubah item ber- |
|
hapus item ber- |
|
command (ping, dst.) |
|
Prasyarat
Komponen | Versi | Catatan |
RouterOS | v7.1+ | REST API hanya ada di v7. Untuk v6 lihat kompatibilitas. |
Python | 3.10+ | Diuji pada 3.14. |
uv | terbaru | Pengelola environment/dependency โ https://docs.astral.sh/uv/ |
Akses jaringan | โ | Host yang menjalankan MikroCLAW harus bisa menjangkau port 443/80 router. |
Persiapan RouterOS
Lakukan sekali di router. Disarankan HTTPS + user least-privilege.
# 1) (HTTPS) Aktifkan service www-ssl dengan sertifikat yang sudah ada di /certificate.
# Jika belum punya sertifikat, buat self-signed dulu (lihat di bawah).
/ip/service/set www-ssl certificate=<nama-sertifikat> disabled=no
# Alternatif cepat (kurang aman): pakai HTTP biasa.
# /ip/service/set www disabled=no
# 2) Buat user khusus MikroCLAW โ JANGAN pakai 'admin' penuh.
/user/add name=mikroclaw password=<password-kuat> group=read ;# read-only
# Untuk mengizinkan operasi write, gunakan group=write atau policy kustom.
# 3) Batasi sumber yang boleh mengakses service (mis. hanya subnet LAN/host admin).
/ip/service/set www-ssl address=192.168.88.0/24Membuat sertifikat self-signed (jika belum ada):
/certificate/add name=mikroclaw-ca common-name=mikroclaw-ca key-usage=key-cert-sign,crl-sign
/certificate/sign mikroclaw-ca
/certificate/add name=mikroclaw-https common-name=<ip-atau-hostname-router>
/certificate/sign mikroclaw-https ca=mikroclaw-ca
/ip/service/set www-ssl certificate=mikroclaw-https disabled=noKarena sertifikat self-signed, biarkan
MIKROTIK_VERIFY_TLS=falsedi.env(default). Settruehanya jika memakai sertifikat yang tepercaya.
Instalasi
Pilih jalur tercepat sesuai OS Anda โ installer mengurus uv, dependency, .env, dan registrasi MCP sekaligus:
Jalur | OS | Kapan dipakai | Perintah |
๐ Bootstrap 1-baris | Windows | Belum punya repo, ingin clone + install sekaligus |
|
๐ Bootstrap 1-baris | macOS / Linux | Belum punya repo, ingin clone + install sekaligus |
|
๐ ๏ธ Installer lokal | Windows | Sudah punya repo |
|
๐ ๏ธ Installer lokal | macOS / Linux | Sudah punya repo |
|
โ Manual | semua | Ingin kontrol penuh tiap langkah |
|
Detail tiap jalur di bawah.
Windows (installer otomatis)
Installer memasang uv, dependency (termasuk Python via uv bila perlu),
menulis .env secara interaktif, dan mendaftarkan MCP server ke Claude Code.
Opsi A โ satu baris (clone + install) di PowerShell:
irm https://raw.githubusercontent.com/Syamsuddin/MikroCLAW/main/bootstrap.ps1 | iexOpsi B โ sudah punya repo: masuk folder MikroCLAW lalu double-click
install.bat, atau di PowerShell:
.\install.ps1Argumen berguna: -MikrotikHost 192.168.88.1 -MikrotikUser mikroclaw,
-AllowWrite (izinkan write), -NonInteractive, -SkipMcpRegister.
Lepas instalasi: .\uninstall.ps1 (tambah -RemoveEnv / -RemoveVenv).
Jika PowerShell memblokir skrip, jalankan lewat
install.bat(sudah pakai-ExecutionPolicy Bypass) atau jalankan PowerShell sebagai:powershell -ExecutionPolicy Bypass -File .\install.ps1.
macOS / Linux (installer otomatis)
Installer memasang uv, dependency (termasuk Python via uv bila perlu), menulis
.env (mode 600), dan mendaftarkan MCP server ke Claude Code.
Opsi A โ satu baris (clone + install):
curl -LsSf https://raw.githubusercontent.com/Syamsuddin/MikroCLAW/main/bootstrap.sh | bashOpsi B โ sudah punya repo:
cd /path/ke/MikroCLAW
./install.shArgumen berguna: --host 192.168.88.1 --user mikroclaw, --allow-write,
--http, --non-interactive, --skip-mcp.
Lepas instalasi: ./uninstall.sh (tambah --remove-env / --remove-venv).
Manual (Windows / macOS / Linux)
cd /path/ke/MikroCLAW
cp .env.example .env # lalu isi host + kredensial router
uv sync # pasang dependency (mcp, httpx, python-dotenv)uv sync membuat virtualenv .venv/ dan menginstal proyek beserta dependensinya.
Konfigurasi (.env)
Semua konfigurasi lewat environment / file .env (otomatis dibaca saat server start).
Variabel | Wajib | Default | Keterangan |
| โ | โ | IP/hostname router, mis. |
| โ |
| User RouterOS (disarankan user khusus least-privilege). |
| โ | (kosong) | Password user tersebut. |
| โ |
|
|
| โ |
| Port REST. Default mengikuti |
| โ |
| Verifikasi sertifikat TLS. |
| โ |
| Timeout request (detik). |
| โ |
| Gerbang keamanan. |
Contoh .env minimal:
MIKROTIK_HOST=192.168.88.1
MIKROTIK_USER=mikroclaw
MIKROTIK_PASSWORD=rahasia-kuat
MIKROTIK_USE_TLS=true
MIKROTIK_VERIFY_TLS=false
MIKROCLAW_ALLOW_WRITE=falseMenghubungkan ke Claude Code
File .mcp.json sudah disertakan (scope project), isinya:
{
"mcpServers": {
"mikroclaw": {
"command": "uv",
"args": ["run", "--directory", "/Users/syams/PROJECTS/MikroCLAW", "mikroclaw"]
}
}
}Server berjalan via stdio; kredensial diambil dari .env (bukan dari file
ini), jadi .mcp.json aman untuk di-commit.
Langkah di Claude Code:
/mcp # cek server "mikroclaw" muncul & status connectedSaat pertama kali, Claude Code akan meminta persetujuan untuk menjalankan MCP server project-scope โ setujui untuk mengaktifkannya.
Ingin dipakai di semua proyek, bukan cuma folder ini? Daftarkan sebagai user-scope:
claude mcp add mikroclaw -s user -- uv run --directory /Users/syams/PROJECTS/MikroCLAW mikroclaw
Daftar tool
100 tool terbagi dua kelas: READ (selalu aktif) dan WRITE (digerbang flag).
pie showData
title Distribusi 100 tool MikroCLAW
"Read (selalu aktif)" : 78
"Write (digerbang)" : 22Cakupan domain READ (ringkas):
Domain | Contoh tool |
๐ฅ๏ธ Sistem & perangkat |
|
๐ Interface & L2 |
|
๐ IP & routing |
|
๐ก๏ธ Firewall & NAT |
|
๐ถ WiFi & CAPsMAN |
|
๐ VPN & tunnel |
|
๐ QoS & bandwidth |
|
๐ IPv6 |
|
๐งญ Routing dinamis |
|
๐ฅ Hotspot & AAA |
|
๐ Keamanan & audit |
|
๐ฉบ Diagnostik |
|
๐งญ Deteksi peran |
|
๐ค Fitur cerdas AI |
|
Read โ selalu aktif
Tool | Parameter | Fungsi | REST |
| โ | Versi RouterOS, CPU, memori, uptime, board, arsitektur. |
|
| โ | Nama/identitas perangkat. |
|
| โ | Semua interface + status running/disabled + statistik. |
|
| โ | Alamat IP per interface. |
|
| โ | Klien DHCP yang mendapat IP dari router. |
|
| โ | Pemetaan IP โ MAC yang terlihat router. |
|
| โ | Aturan firewall filter (input/forward/output). |
|
| โ | Aturan NAT (masquerade, port forward). |
|
| โ | Tabel routing IP (route aktif & statis). |
|
| โ | Simple queue โ pembatasan bandwidth per IP/target. |
|
| โ | Isi semua firewall address-list. |
|
| โ | Konfigurasi DNS: server upstream, cache, allow-remote. |
|
| โ | DHCP server + interface & address-pool-nya. |
|
| โ | Sesi PPP aktif (PPPoE/L2TP/PPTP/SSTP). |
|
| โ | Tabel host bridge (MAC per port). |
|
| โ | Tetangga terdeteksi (MNDP/CDP/LLDP). |
|
| โ | Sensor HW: suhu, tegangan, kipas (jika ada). |
|
| โ | Host yang dipantau Netwatch + status up/down. |
|
| โ | Daftar user RouterOS + grup/hak aksesnya. |
|
| โ | Interface WiFi (auto wifiwave2/legacy). |
|
| โ | Klien WiFi yang terhubung (auto wifiwave2/legacy). |
|
| โ | Interface WireGuard (VPN) + public key & port. |
|
| โ | Peer WireGuard + allowed-address & handshake. |
|
| โ | Akun PPP (PPPoE/VPN) โ name/service/profile. |
|
| โ | IP pool (rentang IP untuk DHCP/PPP). |
|
| โ | Entri DNS statis (A/CNAME) yang dilayani router. |
|
| โ | Status & konfigurasi NTP client. |
|
| โ | Tugas terjadwal RouterOS. |
|
| โ | Script tersimpan di RouterOS. |
|
| โ | Interface VLAN + vlan-id & interface induk. |
|
| โ | Service IP (api/ssh/www/telnet/winbox) + port. |
|
| โ | Status DHCP client (mis. IP WAN dari ISP). |
|
| โ | IP publik & DDNS MikroTik (remote access). |
|
| โ | Paket RouterOS terpasang + status. |
|
| โ | Model, serial, firmware terpasang vs tersedia. |
|
| โ | User yang sedang login (audit keamanan). |
|
| โ | File di router (backup/export) + ukuran & waktu. |
|
| โ | Connection tracking aktif (troubleshooting). |
|
| โ | Pemetaan port ke bridge. |
|
| โ | Sertifikat + masa berlaku (audit kedaluwarsa). |
|
| โ | Isi cache DNS resolver router. |
|
| โ | Gateway/DNS/netmask yang ditawarkan DHCP. |
|
| โ | Aturan mangle (marking QoS/policy routing). |
|
| โ | Queue tree (bandwidth hierarkis berbasis mark). |
|
| โ | Profil PPP (rate-limit, pool, DNS). |
|
| โ | Grup hak akses + policy (audit keamanan). |
|
| โ | Detail port ethernet (link speed, auto-neg). |
|
| โ | Konfigurasi peer IPsec. |
|
| โ | Tunnel IPsec yang sedang aktif. |
|
| โ | Alamat IPv6 per interface. |
|
| โ | Tabel routing IPv6. |
|
| โ | Aturan firewall filter IPv6. |
|
| โ | Tabel neighbor IPv6 (NDP). |
|
| โ | Server hotspot + interface & profil. |
|
| โ | User hotspot yang sedang login. |
|
| โ | Akun user hotspot. |
|
| โ | CAP/AP yang dikelola CAPsMAN (auto legacy/wifiwave2). |
|
| โ | Klien via CAPsMAN (auto legacy/wifiwave2). |
|
| โ | Radio WiFi fisik (wifiwave2). |
|
| โ | Sesi BGP (v7). |
|
| โ | Neighbor OSPF + state adjacency (v7). |
|
| โ | Server RADIUS (AAA). |
|
| โ | Riwayat perubahan config (undo). |
|
| โ | Info lisensi (level/CHR). |
|
|
| Log terbaru RouterOS. |
|
|
| Ping dari router ke sebuah alamat (diagnostik). |
|
|
| Traceroute (jejak hop) dari router. |
|
|
| Satu sampel throughput real-time (rx/tx bps). |
|
| โ | Cek update RouterOS (tidak mengubah config). |
|
| โ | Deteksi peran perangkat (gateway NAT, firewall, BGP/OSPF, switch/AP, BRAS, VPN, DHCP/DNS, QoS, dll) + bukti & keyakinan. | multi |
|
| Twin โ telusuri paket hipotetis menembus mangleโdst-natโroutingโfilterโsrc-nat di atas ruleset live; lapor verdict + jejak. | multi |
|
| Twin โ uji dampak satu aturan firewall baru SEBELUM diterapkan (diff verdict). | multi |
|
| Sentinel โ sidik-jari perilaku per-perangkat dari conntrack; deteksi botnet IoT/miner/scan tanpa signature, berkonteks kelas perangkat. |
|
|
| Chronicle โ simpan snapshot konfigurasi relevan-keamanan (ber-hash) ke disk lokal. | multi |
|
| Chronicle โ diff konfigurasi live vs snapshot terakhir + penilaian risiko (user baru, port mgmt dibuka, persistensi, dll). | multi |
|
| Replay โ rekonstruksi telemetri jendela waktu lampau (riwayat Pulse) + anomali untuk RCA "kenapa tadi lemot". | file riwayat lokal |
|
| Concierge โ terjemahkan telemetri jadi sinyal bisnis RT-RW net (pelanggan, akun nganggur, pencuri bandwidth, utilisasi WAN). | multi |
|
| GET generic ke path REST apa pun (read-only). |
|
Contoh rest_get untuk hal yang belum punya tool khusus:
ip/dns, ppp/active, interface/wireless, system/clock, queue/simple.
Write โ perlu MIKROCLAW_ALLOW_WRITE=true
Jika flag bernilai false (default), tool ini mengembalikan error dan tidak
menyentuh router.
Tool | Parameter | Fungsi | REST |
|
| Aktif/nonaktifkan interface (by |
|
|
| Tambah aturan DROP untuk sumber tertentu. |
|
|
| Tambah IP/subnet ke firewall address-list. |
|
|
| Hapus satu aturan firewall filter by |
|
|
| Aktif/nonaktifkan satu aturan firewall by |
|
|
| Tambah simple queue (batas bandwidth target). |
|
|
| Buat file backup konfigurasi (.backup) di router. |
|
| โ | Reboot router sekarang (mengganggu koneksi). |
|
|
| Tambah entri DNS statis (A record). |
|
|
| Tambah akun PPP (PPPoE/VPN). |
|
|
| Tambah peer WireGuard. |
|
|
| Aktif/nonaktifkan IP service (mis. matikan telnet). |
|
|
| Tambah NAT: port-forward (dstnat) / masquerade (srcnat). |
|
|
| Tambah route statis (termasuk default route). |
|
|
| Pin IP statis ke MAC (static lease). |
|
|
| Pasang IP (CIDR) ke interface. |
|
|
| Ganti nama/identitas router. |
|
|
| Set DNS upstream router. |
|
|
| Hapus entri address-list by |
|
|
| Tambah akun user hotspot. |
|
|
| Pasang alamat IPv6 ke interface. |
|
|
| Write generic untuk operasi lanjutan. Gunakan hati-hati. | sesuai |
Skills (playbook orkestrasi)
Selain 100 tool atomik, MikroCLAW menyertakan Agent Skills di
.claude/skills/ โ playbook yang mengoordinasikan banyak tool
menjadi alur kerja siap pakai. Claude Code memuatnya otomatis saat frasa pemicunya
muncul; bisa juga dipanggil eksplisit dengan /<nama-skill>.
Skill | Fungsi | Pemicu contoh |
| Laporan kesehatan & maintenance (resource, suhu, firmware, update, WAN, NTP). | "cek kesehatan router", "ada update routeros?" |
| Tinjau filter/NAT/mangle, address-list, koneksi; temuan + rekomendasi. | "audit firewall", "firewall monitoring" |
| Hardening: service terbuka, user/grup, sesi, sertifikat, DNS, proteksi input. | "audit keamanan", "apakah router aman" |
| Snapshot inventaris: WAN, subnet, interface/VLAN, routing, klien, tetangga. | "overview jaringan", "dokumentasi config" |
| Diagnosa konektivitas berlapis (L1โIPโDNSโfirewall). | "internet mati", "tidak bisa browsing" |
| Backup biner + snapshot JSON konfigurasi kunci untuk diff/dokumentasi. | "backup mikrotik", "snapshot sebelum perubahan" |
| Deteksi & jelaskan peran perangkat (gateway/firewall/BGP/AP/BRAS/VPN/โฆ) beserta bukti & keyakinan. | "deteksi peran mikrotik", "router ini berfungsi sebagai apa" |
| Simulator what-if โ telusuri nasib paket & uji aturan firewall baru sebelum diterapkan. | "kalau klien X akses Y lolos?", "simulasikan rule ini", "uji firewall sebelum pasang" |
| Deteksi perangkat terinfeksi โ botnet IoT/miner/scan dari perilaku koneksi, tanpa signature. | "ada perangkat terinfeksi?", "cek botnet", "kenapa CCTV ini aneh" |
| Mesin waktu konfigurasi โ snapshot + diff berisiko untuk deteksi perubahan/intrusi. | "apa yang berubah di config?", "deteksi perubahan tak terjadwal", "ada backdoor?" |
| RCA retrospektif โ jelaskan insiden masa lampau dari riwayat telemetri. | "kenapa tadi sore lemot?", "internet sempat putus jam berapa" |
| Laporan bisnis โ pelanggan, akun nganggur, pencuri bandwidth, utilisasi WAN, kapan upgrade. | "laporan bisnis RT-RW net", "ada yang nyolong bandwidth?", "perlu upgrade paket?" |
Semua skill read-only secara default; remediasi yang mengubah konfigurasi selalu
meminta konfirmasi dan tetap butuh MIKROCLAW_ALLOW_WRITE=true.
MikroCLAW Pulse โ dashboard monitoring live
Selain MCP server, MikroCLAW menyertakan Pulse: laman web monitoring yang memperbarui indikator per detik lewat Server-Sent Events.
Fase 1 โ data plane: read-only, tanpa dependency baru (memakai Starlette + uvicorn yang sudah ikut
mcp). Memantau RouterOS bertingkat & menyusun state live.Fase 2 โ lapis AI (opsional): kartu ๐ง AI Analyst menarasikan kondisi jaringan, mendeteksi anomali tanpa ambang tetap, mengkorelasikan akar masalah, dan menyarankan remediasi โ memanggil Anthropic Messages API langsung via
httpx(tanpa SDK), output terstruktur lewat tool-use. Tetap read-only (hanya membaca snapshot). Aktif bilaANTHROPIC_API_KEYdi-set; tanpa itu Pulse tetap jalan dan kartu AI menampilkan status "nonaktif".Fase 3 โ AI proaktif: ๐ฎ Prediksi tren deterministik (regresi linear dari riwayat โ tren %/jam + ETA mencapai ambang untuk CPU/memori/disk โ jalan tanpa API key), plus โก Remediasi 1-klik yang diusulkan AI dan dieksekusi dari dashboard. Remediasi di-gate ganda: butuh
MIKROCLAW_ALLOW_WRITE=truedan hanya aksi dari allowlist sempit (blokir_ip,tambah_address_list,nonaktifkan_service) yang persis diusulkan AI โ tiap aksi diberi komentar auditadded-by-pulse-ai.
# memakai kredensial yang sama dari .env
uv run mikroclaw-web # atau: python -m mikroclaw.web
# buka http://127.0.0.1:8800Arsitektur Pulse โ empat loop polling bertingkat โ state in-memory โ SSE โ browser:
flowchart LR
subgraph poller["poller.py โ empat loop async"]
F["โก fast ยท 1 dtk<br/>resource ยท health ยท throughput"]
M["๐ mid ยท 5 dtk<br/>klien ยท firewall ยท queue"]
S["๐ข slow ยท 30 dtk<br/>WAN ยท service ยท sertifikat"]
P["๐ก ping ยท 5 dtk<br/>RTT gateway & 8.8.8.8"]
end
ROS["๐ก RouterOS<br/>REST v7"]
STATE[("๐ง state in-memory<br/>+ ring-buffer 60 dtk")]
APP["app.py<br/>Starlette + SSE"]
UI["๐ index.html<br/>(vanilla JS, 0 dependency)"]
ROS --> F & M & S & P
F & M & S & P --> STATE
STATE -- "snapshot tiap tick" --> APP
APP -- "/api/stream (SSE)" --> UI
classDef box fill:#10182a,stroke:#1f2d44,color:#e6edf3;
class F,M,S,P,ROS,STATE,APP,UI box;๐ก Throughput diturunkan dari delta counter rx/tx
/interface(satu request untuk semua interface), bukanmonitor-trafficper-interface โ jauh lebih ringan untuk router.
ENV | Default | Keterangan |
|
| Alamat bind. Set |
|
| Port HTTP laman. |
| (kosong) | Mengaktifkan lapis AI (Fase 2). Tanpa ini, kartu AI tampil "nonaktif". |
|
| Model Claude untuk analisis. |
|
| Detik antar-analisis otomatis. |
|
| Batas token output analisis. |
Yang ditampilkan (semua dari tool read yang ada):
Vitals (1 dtk): CPU, memori, disk, suhu/tegangan, jumlah klien, firewall drops/dtk, conntrack, sesi login, sertifikat terdekat kedaluwarsa.
WAN: IP WAN/publik, DDNS, gateway, RTT ping gateway &
8.8.8.8, sparkline download/upload 60 detik.Interface matrix (1 dtk): throughput rx/tx live (delta counter), status link, link-speed, error/drop.
Klien: gabungan DHCP + PPPoE + hotspot + WiFi (sinyal), tebakan vendor dari OUI MAC, dan bandwidth per-klien bila ada simple queue yang cocok.
Service terbuka: ditandai merah bila berisiko (telnet/ftp/www/api) tanpa batasan
address.Log Stream: tail
/logterbaru dengan pewarnaan severity (error/warning).๐ง AI Analyst (Fase 2): status sehat/perhatian/kritis, ringkasan naratif, daftar anomali ber-severity, dan rekomendasi โ plus tombol "Analisa sekarang".
๐ฎ Prediksi Tren (Fase 3): tren & ETA CPU/memori/disk (deterministik, tanpa API key).
โก Remediasi 1-klik (Fase 3): tombol eksekusi aksi yang diusulkan AI (muncul ter-kunci bila write-gate mati).
Cadence bertingkat (1 dtk vitals/interface ยท 5 dtk klien & ping ยท 30 dtk WAN/
service/sertifikat & sampel prediksi ยท analisis AI default 60 dtk) agar tidak
membebani router. Endpoint: / (laman), /api/stream (SSE), /api/snapshot
(JSON sekali ambil), /api/analyze (POST โ picu analisis AI), /api/remediate
(POST โ eksekusi 1 aksi remediasi; butuh ALLOW_WRITE).
Contoh penggunaan
Cukup minta dalam bahasa biasa di Claude Code:
"Tampilkan versi RouterOS dan pemakaian CPU/memori." โ
system_resource"Siapa saja klien DHCP yang aktif sekarang?" โ
dhcp_leases"Interface mana yang sedang down?" โ
list_interfaces"Tunjukkan 100 baris log terakhir yang mengandung error." โ
recent_logs+ filter"Ping 8.8.8.8 dari router." โ
ping"Apa konfigurasi DNS router?" โ
rest_get path=ip/dns"Blokir IP 10.0.0.5 di firewall." โ
add_firewall_drop(butuhALLOW_WRITE=true)"Nonaktifkan interface ether5." โ
set_interface_enabled(butuhALLOW_WRITE=true)
Uji manual tanpa Claude
Memastikan REST hidup & kredensial benar sebelum menyalakan dari Claude:
source .env
curl -sk -u "$MIKROTIK_USER:$MIKROTIK_PASSWORD" \
"https://$MIKROTIK_HOST/rest/system/resource" | jq .Uji server MCP-nya sendiri (memuat & mendaftarkan tool, tanpa konek router):
uv run python -c "
import asyncio
from mikroclaw.server import mcp
tools = asyncio.run(mcp.list_tools())
print(f'{len(tools)} tools:', ', '.join(t.name for t in tools))
"Test suite (pytest)
Tersedia unit test untuk client REST, helper poller, prediksi/throughput, remediasi, lapis AI, dan endpoint Pulse โ semuanya offline (httpx di-mock, tanpa router/jaringan/biaya API):
uv run --extra test pytest # memasang & menjalankan pytest (extra 'test')83 passed in 0.45sKeamanan
User least-privilege โ buat user khusus (mis. grup
read); jangan pakaiadminpenuh.Pisahkan kredensial โ hanya di
.env, yang sudah masuk.gitignore. Jangan tempel password di chat atau di.mcp.json.Gunakan TLS โ
MIKROTIK_USE_TLS=true. SetMIKROTIK_VERIFY_TLS=truesetelah memasang sertifikat tepercaya.Batasi sumber akses di router:
/ip/service/set www-ssl address=<subnet-tepercaya>.Write off by default โ biarkan
MIKROCLAW_ALLOW_WRITE=falsekecuali memang sedang melakukan perubahan; matikan lagi sesudahnya.Audit โ operasi
add_firewall_dropmenyertakan komentaradded-by-mikroclawagar mudah ditelusuri/dihapus.
Troubleshooting
Gejala | Kemungkinan sebab | Solusi |
|
|
|
| Port REST tertutup / host salah / firewall | Cek |
| User/password salah | Periksa |
| Path tidak ada di versi RouterOS ini | Cek nama path; sebagian fitur beda antar versi. |
Error sertifikat / SSL | Self-signed + verify aktif | Set |
| Mencoba tool write saat gate off | Set |
Server tak muncul di |
| Jalankan |
Perubahan | Server masih pakai proses lama | Restart koneksi MCP (toggle via |
Kompatibilitas RouterOS v6 vs v7
REST API hanya ada di RouterOS v7. Jika router Anda v6:
Antarmuka tool di
server.pytidak perlu berubah.Ganti lapisan transport di
client.pyke API biner (port8728/8729TLS) memakai library sepertilibrouteros.RouterOSClient.get/put/patch/deletecukup dipetakan ke perintah API biner; sisanya (config, server, daftar tool) tetap sama.
API biner juga bekerja di v7, sehingga bisa dipakai sebagai transport tunggal lintas versi bila diinginkan.
Struktur proyek
MikroCLAW/
โโโ .mcp.json # registrasi server untuk Claude Code (project-scope)
โโโ .env.example # template variabel environment
โโโ .env # kredensial nyata (di-gitignore, buat sendiri)
โโโ .gitignore
โโโ pyproject.toml # metadata + dependency + entry point `mikroclaw`
โโโ README.md
โโโ CLAUDE.md # panduan repo untuk Claude Code (arsitektur & konvensi)
โโโ LICENSE # Apache License 2.0
โโโ install.ps1 / install.sh # installer (Windows / macOS+Linux)
โโโ install.bat # launcher double-click untuk install.ps1
โโโ uninstall.ps1 / uninstall.sh# lepas registrasi MCP (opsi hapus .env/.venv)
โโโ bootstrap.ps1 / bootstrap.sh# clone + install satu baris
โโโ tests/ # unit test pytest (offline, httpx di-mock)
โโโ .claude/skills/ # Agent Skills (playbook orkestrasi tool)
โ โโโ mikrotik-health-check/SKILL.md
โ โโโ mikrotik-firewall-audit/SKILL.md
โ โโโ mikrotik-security-audit/SKILL.md
โ โโโ mikrotik-network-overview/SKILL.md
โ โโโ mikrotik-troubleshoot/SKILL.md
โ โโโ mikrotik-backup-snapshot/SKILL.md
โ โโโ mikrotik-role-detect/SKILL.md
โ โโโ mikrotik-twin/SKILL.md # ๐ simulator what-if
โ โโโ mikrotik-sentinel/SKILL.md # ๐ deteksi perangkat terinfeksi
โ โโโ mikrotik-chronicle/SKILL.md # ๐ mesin waktu konfigurasi
โ โโโ mikrotik-replay/SKILL.md # ๐ RCA retrospektif
โ โโโ mikrotik-concierge/SKILL.md # ๐ laporan bisnis
โโโ src/mikroclaw/
โโโ __init__.py # versi paket
โโโ config.py # baca .env/env โ objek Config + validasi
โโโ client.py # client REST RouterOS v7 (async httpx)
โโโ roles.py # classify_roles: deteksi peran dari bukti (murni)
โโโ storage.py # ๐ helper state dir lokal (Chronicle & Replay)
โโโ twin.py # ๐ Twin: engine simulator paket (murni)
โโโ sentinel.py # ๐ Sentinel: sidik-jari perilaku perangkat (murni)
โโโ chronicle.py # ๐ Chronicle: snapshot/diff/risiko konfigurasi (murni)
โโโ concierge.py # ๐ Concierge: telemetri โ sinyal bisnis (murni)
โโโ server.py # FastMCP + definisi 100 tool + write-gate
โโโ web/ # MikroCLAW Pulse โ dashboard monitoring live
โโโ poller.py # data plane: poll bertingkat + ring-buffer + throughput + prediksi
โโโ history.py # ๐ Replay: persistensi riwayat telemetri + ringkasan jendela
โโโ analyst.py # lapis AI (Fase 2): Anthropic Messages API via httpx
โโโ actions.py # remediasi 1-klik (Fase 3): allowlist aksi write yang aman
โโโ app.py # Starlette + SSE + endpoint analyze/remediate + entry `mikroclaw-web`
โโโ static/
โโโ index.html # dashboard vanilla JS (tanpa dependency eksternal)Pengembangan: menambah tool
Tambahkan fungsi async di src/mikroclaw/server.py dengan dekorator @mcp.tool().
Docstring menjadi deskripsi tool yang dilihat Claude โ tulis sejelas mungkin.
Contoh menambah daftar simple queue (read):
@mcp.tool()
async def simple_queues() -> Any:
"""Daftar simple queue (pembatasan bandwidth per target)."""
return await _ros().get("/queue/simple")Contoh tool write (selalu panggil _require_write() di awal):
@mcp.tool()
async def reboot_router() -> Any:
"""Reboot router. BUTUH MIKROCLAW_ALLOW_WRITE=true."""
_require_write()
return await _ros().post("/system/reboot")Setelah mengubah kode, restart koneksi MCP di Claude Code (/mcp) agar tool baru
terdeteksi. Verifikasi cepat:
uv run python -c "import asyncio; from mikroclaw.server import mcp; print(len(asyncio.run(mcp.list_tools())), 'tools')"Riwayat versi
Versi | Sorotan |
v1.7.0 | 5 fitur cerdas AI โ Twin (simulator what-if paket: |
v1.6.0 | Deteksi peran โ tool |
v1.5.0 | Pulse Fase 3 โ AI proaktif: prediksi tren deterministik (CPU/mem/disk + ETA) & remediasi 1-klik ter-gate ganda (write-flag + allowlist + cocok usulan AI) lewat |
v1.4.0 | Pulse Fase 2 โ lapis AI Analyst (Anthropic Messages API via httpx, read-only, output terstruktur lewat tool-use) + Log Stream dengan pewarnaan severity + endpoint |
v1.3.0 | MikroCLAW Pulse โ laman web monitoring live per-detik (Starlette + SSE, read-only; tanpa dependency baru). |
v1.2.0 | Installer macOS / Linux (bash) + bootstrap satu-baris. |
v1.1.0 | Installer Windows (PowerShell) + bootstrap satu-baris. |
v1.0.0 | Rilis awal โ MCP server (92 tool: 70 read + 22 write) + 6 Agent Skills. |
Penomoran mengikuti urutan milestone fitur pada histori git; rincian tiap perubahan ada di
git log.
Lisensi
Dirilis di bawah Apache License 2.0 โ lihat LICENSE.
MikroCLAW dibuat untuk administrasi MikroTik yang sah pada perangkat milik/dikuasakan kepada Anda. Gunakan secara bertanggung jawab.
Available Tools
92 toolsactive_sessionsA
User yang sedang login ke router (via, alamat, kapan) โ audit keamanan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only operation (listing sessions) but does not explicitly state whether it is safe or has side effects. The behavioral disclosure is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately conveys the tool's purpose and key details. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description briefly explains the returned information (via, address, time) and the security audit context. For a simple tool with no parameters, it provides sufficient context for an agent to understand its use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and schema coverage is 100%. The description adds value by specifying the return fields (via, address, time), though it doesn't need to explain parameters. The semantics are clear from the description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists active login sessions with details (via, address, time) and indicates a security audit purpose. It distinguishes itself from similar sibling tools like hotspot_active or ppp_active through the context of router user sessions, though not explicitly contrasted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'audit keamanan' (security audit) implying a usage context, but provides no explicit guidance on when to use this tool versus alternatives like ppp_active or when not to use it. No exclusions or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_address_list_entryA
Tambah IP/subnet ke sebuah firewall address-list. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Cocok untuk blokir/izin massal: satu aturan firewall cukup merujuk ke list ini.
Args: address: IP/subnet, mis. '10.0.0.5' atau '192.168.10.0/24'. address_list: nama list tujuan, mis. 'blocked'. comment: catatan pada entri. timeout: durasi auto-hapus (mis. '1h', '30m'); kosong = permanen.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | ||
| comment | No | added-by-mikroclaw | |
| timeout | No | ||
| address_list | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the timeout behavior and permanent default, and the environment variable requirement. However, it does not mention idempotency, error handling, or return values, leaving gaps in behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a brief header, a use case sentence, and a clear parameter list. It is reasonably concise, though the 'Args:' section could be slightly tighter. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity of the tool, the description covers the core action adequately. However, without an output schema, it omits any explanation of return values or error conditions, which is a notable gap for a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It provides examples and explanations for all four parameters (address, address_list, comment, timeout), including format hints and default values. This adds significant meaning beyond the schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('add IP/subnet to a firewall address-list') and specifies the resource ('address-list'). It includes a use case differentiation ('suitable for mass blocking/allowing'), distinguishing it from sibling tools like 'remove_address_list_entry' and individual rule tools like 'add_firewall_drop'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies a prerequisite ('BUTUH MIKROCLAW_ALLOW_WRITE=true') and suggests when to use it ('for mass blocking/allowing'). However, it does not provide explicit exclusions or alternatives, leaving the agent to infer when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_dns_staticB
Tambah entri DNS statis (A record: name -> address). BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: name: nama host, mis. 'nas.lan'. address: IP tujuan, mis. '192.168.88.10'. ttl: time-to-live, mis. '1d', '1h'.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | 1d | |
| name | Yes | ||
| address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It states the required macro for write permission and basic parameters but does not disclose important behavioral traits like duplicate handling, overwrite behavior, or error conditions. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with only four lines including examples. It is well-structured with clear parameter descriptions. However, the use of Indonesian may reduce clarity for an English-speaking AI agent, but it is still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description adequately covers parameter usage. However, it lacks information about expected outcomes, return values, or side effects, which is needed for a write operation in a networking context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description adds meaningful examples for each parameter (e.g., 'name: 'nas.lan'', 'address: '192.168.88.10'', 'ttl: '1d', '1h''). This provides useful context beyond the schema's property names and defaults, especially for the ttl format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the function: 'Add static DNS entry (A record: name -> address)'. It clearly identifies the resource and action, distinguishing it from sibling tools like dns_static (list) and set_dns_servers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only mentions a required macro condition ('BUTUH MIKROCLAW_ALLOW_WRITE=true') but provides no guidance on when to use this tool versus alternatives (e.g., add_static_dhcp_lease for different purposes). It lacks explicit when-not-to-use or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_firewall_dropA
Tambah aturan firewall untuk DROP trafik dari src_address. BUTUH ALLOW_WRITE.
Args: src_address: IP/subnet sumber yang akan diblok, mis. '10.0.0.5'. chain: chain firewall (default 'forward'). comment: catatan pada aturan.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | forward | |
| comment | No | added-by-mikroclaw | |
| src_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only states that the tool adds a rule and requires write permission, but lacks details on potential side effects (e.g., rule insertion order, duplication, or impact on existing traffic). This is insufficient for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the action. However, mixing Indonesian and English may slightly reduce clarity. Otherwise, it is concise and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 simple parameters, no output schema, and no annotations, the description covers the essential purpose and parameter defaults. However, it lacks behavioral completeness (e.g., rule ordering, error conditions). Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning to parameters. It explains src_address with an example, and provides defaults for chain and comment. This adds significant value beyond the schema's bare types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool adds a firewall rule to DROP traffic from a specified src_address. This specific verb and resource distinguish it from sibling tools like delete_firewall_rule or set_firewall_rule_enabled.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite: 'BUTUH ALLOW_WRITE' (needs write permission), which guides usage. It does not explicitly state when not to use this tool versus alternatives, but the context of adding a drop rule is well-defined and no sibling tool performs the same function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_hotspot_userB
Tambah akun user hotspot. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: name: username hotspot. password: password (opsional; kosong = tanpa password). profile: nama user-profile hotspot. comment: catatan.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| comment | No | added-by-mikroclaw | |
| profile | No | default | |
| password | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose side effects (e.g., overwriting behavior), error conditions (e.g., duplicate username), or required permissions beyond the environment variable. For a write operation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is short and front-loaded with purpose and prerequisite. Arg list is clear. However, could be more concise by not repeating arg descriptions already implied by parameter names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations. Description covers basic parameters but lacks information about return values, error handling, or behavior on duplicate user. Adequate for simple create but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description adds meaningful context for each parameter: 'username hotspot', 'password opsional', 'nama user-profile hotspot', 'catatan'. This compensates for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Tambah akun user hotspot' (Add hotspot user account) and lists arguments. It distinguishes from sibling tools like hotspot_users (list) and hotspot_active (sessions). However, it could be more precise about the exact resource/modification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions prerequisite 'BUTUH MIKROCLAW_ALLOW_WRITE=true' but does not specify when to use this tool vs alternatives like hotspot_users or other add tools. Usage is implied but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_ipv6_addressA
Pasang alamat IPv6 ke sebuah interface. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: address: IPv6 dengan prefix, mis. '2001:db8::1/64'. interface: nama interface, mis. 'bridge1'. comment: catatan.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | ||
| comment | No | added-by-mikroclaw | |
| interface | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states the action (add) and the prerequisite, but omits consequences such as whether the operation is idempotent, what happens to existing addresses, or error conditions. This is insufficient for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences plus a list of arguments with examples. Every sentence adds value, and the key purpose is front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple add operation, the description covers the basic parameters and prerequisite. However, it lacks details on idempotency, error handling, and whether the address can be added if one already exists. With no output schema, some behavioral context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides clear examples for address ('2001:db8::1/64') and interface ('bridge1'), and explains the comment parameter as 'catatan' (note). This adds significant meaning beyond the schema's bare titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Pasang alamat IPv6 ke sebuah interface' (Add IPv6 address to an interface), which is a specific verb and resource. Although tools like assign_ip_address exist for IPv4, this tool is distinct for IPv6, and the description makes that clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a prerequisite (MIKROCLAW_ALLOW_WRITE=true) which helps with usage, but it does not explicitly state when to use this tool versus alternatives like assign_ip_address or other add tools. No explicit when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_nat_ruleA
Tambah aturan NAT (port-forward / masquerade). BUTUH MIKROCLAW_ALLOW_WRITE=true.
Contoh port-forward (TCP 8080 publik -> 192.168.88.10:80): chain='dstnat', action='dst-nat', protocol='tcp', dst_port='8080', to_addresses='192.168.88.10', to_ports='80' Contoh masquerade WAN: chain='srcnat', action='masquerade', out_interface='ether1'
Args: chain: 'dstnat' atau 'srcnat'. action: mis. 'dst-nat', 'src-nat', 'masquerade'. protocol/dst_port/to_addresses/to_ports/src_address/dst_address/ in_interface/out_interface: opsional, isi sesuai kebutuhan. comment: catatan pada aturan.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | ||
| action | Yes | ||
| comment | No | added-by-mikroclaw | |
| dst_port | No | ||
| protocol | No | ||
| to_ports | No | ||
| dst_address | No | ||
| src_address | No | ||
| in_interface | No | ||
| to_addresses | No | ||
| out_interface | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
As no annotations are provided, the description must convey behavioral traits. It describes the additive nature of creating a rule and notes the default comment. Yet it lacks details on error handling, idempotency, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: purpose, prerequisite, examples, then parameter list. It is front-loaded and efficient, though slightly verbose with example repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all parameters and common use cases, but it does not describe return values or error conditions. Given the tool's complexity (11 params, no output schema), it is nearly complete but lacks operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description fully compensates by explaining all parameters, listing optional ones, and providing usage examples for chain, action, and others. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds NAT rules (port-forward/masquerade) and provides concrete examples. It distinguishes from siblings like add_firewall_drop by focusing on NAT operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a prerequisite (MIKROCLAW_ALLOW_WRITE=true) and examples for port-forward and masquerade, showing when each is used. However, it does not explicitly mention when not to use this tool or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_ppp_secretB
Tambah akun PPP (PPPoE/VPN). BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: name: username akun. password: password akun. service: jenis service ('any','pppoe','l2tp','pptp','sstp','ovpn'). profile: nama PPP profile (default 'default').
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| profile | No | default | |
| service | No | any | |
| password | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions a configuration requirement but does not disclose behavioral traits such as whether the operation is reversible, what side effects occur, or authentication needs beyond the environment variable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose in Indonesian, followed by the requirement and argument list. Every sentence is necessary, though the mix of languages (Indonesian and English) slightly reduces clarity for non-Indonesian agents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with 4 parameters and no output schema, the description covers all inputs and prerequisites. However, it lacks details on what the tool returns, error handling, or confirmation of success, making it adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description explains each parameter: name (username), password, service (with example values), and profile (with default). This adds significant meaning beyond the schema, though it could include constraints like password format or service enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a PPP account (PPPoE/VPN) and lists its arguments. It is specific about the resource but does not differentiate from sibling tools like add_hotspot_user or add_static_dhcp_lease, which have similar 'add' verbs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite (MIKROCLAW_ALLOW_WRITE=true) but gives no explicit guidance on when to use this tool versus alternatives, nor when not to use it. The usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
address_listsB
Isi semua firewall address-list (grup IP yang dirujuk aturan firewall).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states that the tool lists contents, implying a read operation, but does not explicitly declare its read-only nature, required permissions, or any side effects. With no annotations, the description could be more transparent about behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is concise and front-loaded, conveying the essential purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, parameters, or annotations, the description provides basic context but lacks details on output format (e.g., whether it returns list names, entries, or both). It also does not mention read-only behavior, which would aid completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema coverage is 100%, so the description does not need to add parameter meaning. The baseline score of 4 is appropriate as the description adds no confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly indicates that the tool lists the contents of all firewall address-lists, which are IP groups used in firewall rules. The verb 'Isi' (contents) clarifies it's a listing operation, distinguishing it from add/remove sibling tools, though it could specify whether it returns list names, entries, or both.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like add_address_list_entry or remove_address_list_entry. The description lacks context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_simple_queueB
Tambah simple queue untuk membatasi bandwidth target. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: name: nama queue, mis. 'limit-tamu'. target: IP/subnet/interface target, mis. '192.168.88.50/32'. max_limit: batas upload/download 'tx/rx', mis. '5M/10M'.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| target | Yes | ||
| max_limit | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It indicates a write operation and a requirement flag, but does not disclose return values, error handling, idempotency, or side effects such as whether existing queues can be overwritten.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: one sentence for purpose, one line for requirement, and a structured parameter list with examples. Every sentence adds value with no redundancy, and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple add tool with 3 parameters and no output schema, the description covers the essential purpose, requirement, and parameter formats. However, it does not describe the return value, postconditions (e.g., the queue will appear in simple_queues), or potential errors, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It provides concrete examples for all three parameters (e.g., name: 'limit-tamu', target: '192.168.88.50/32', max_limit: '5M/10M'), adding meaning beyond the schema's type-only definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Tambah' (add) and resource 'simple queue' with purpose 'membatasi bandwidth target' (limit bandwidth target). It distinguishes itself from sibling tools like 'simple_queues' (list) and 'queue_tree' by specifying 'simple queue', but does not explicitly differentiate from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes the prerequisite MIKROCLAW_ALLOW_WRITE=true and provides example parameter formats. However, it does not specify when to use this tool versus alternatives like queue_tree, nor does it mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_static_dhcp_leaseA
Pin IP statis ke sebuah MAC (static DHCP lease). BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: address: IP yang dipatok, mis. '192.168.88.50'. mac_address: MAC klien, mis. 'AA:BB:CC:DD:EE:FF'. server: (opsional) nama DHCP server; lihat dhcp_servers. comment: catatan pada lease.
| Name | Required | Description | Default |
|---|---|---|---|
| server | No | ||
| address | Yes | ||
| comment | No | added-by-mikroclaw | |
| mac_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It declares that this is a write operation requiring a specific environment variable, but it does not disclose potential side effects (e.g., overwriting existing leases), error conditions, or the outcome of the operation. The description is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the purpose stated first, followed by a clear requirement and parameter list. Every sentence adds value without redundancy. It is well-structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (4 parameters, no output schema), the description covers the essential aspects: purpose, required env variable, parameter explanations. However, it lacks information about the response or any post-creation state, which could be useful for an agent to confirm success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no descriptions for parameters (0% coverage), so the description must compensate. It does so effectively by providing examples for each parameter and indicating which are required and optional. It adds meaning beyond the schema, though it could detail format constraints for MAC addresses.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: pinning a static IP to a MAC address (static DHCP lease). It uses specific verbs and resources, but does not explicitly differentiate from sibling tools that also perform write operations, though the context of 'static DHCP lease' is unique among the listed siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a prerequisite ('BUTUH MIKROCLAW_ALLOW_WRITE=true'), which provides some guidance. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention when not to use it. The usage context is implied but not fully elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_static_routeA
Tambah route statis. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: dst_address: subnet tujuan, mis. '10.20.0.0/24' atau '0.0.0.0/0' (default route). gateway: gateway/next-hop, mis. '192.168.88.1' atau nama interface. distance: (opsional) administrative distance, mis. '1'. comment: catatan pada route.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | added-by-mikroclaw | |
| gateway | Yes | ||
| distance | No | ||
| dst_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses the write permission requirement but does not mention potential side effects (e.g., duplicate routes, persistence, error handling) or whether the operation is destructive. This is insufficient for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a two-line header followed by bullet-style parameter explanations. Every sentence serves a purpose, and the structure is front-loaded with the core purpose and requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers parameter usage well but lacks information about return values, immediate effects, or error responses. For a simple add operation, this is acceptable but not fully complete given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fully compensates by explaining all four parameters with examples and context (e.g., 'mis. 10.20.0.0/24' for dst_address). This adds significant meaning beyond the schema's type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Tambah route statis' (Add static route) and provides parameter examples, making the purpose clear. However, it does not differentiate from sibling tools beyond the name itself, which is unique but not elaborated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a required environment variable 'BUTUH MIKROCLAW_ALLOW_WRITE=true', which is a usage condition. However, it does not specify when to use this tool over alternatives or provide scenarios where it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_wireguard_peerA
Tambah peer WireGuard ke sebuah interface. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: interface: nama interface WireGuard, mis. 'wg0'. public_key: public key milik peer. allowed_address: subnet yang diizinkan, mis. '10.10.0.2/32'. endpoint_address: (opsional) alamat endpoint peer. endpoint_port: (opsional) port endpoint peer.
| Name | Required | Description | Default |
|---|---|---|---|
| interface | Yes | ||
| public_key | Yes | ||
| endpoint_port | No | ||
| allowed_address | Yes | ||
| endpoint_address | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description only mentions the need for write permission, indicating a destructive action. However, it does not disclose what happens on success, conflict, or error, nor any side effects beyond the write requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the main action and requirement, and lists parameters clearly in separate lines. Every sentence contributes value without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters (3 required) and no output schema or annotations, the description covers parameters and a write requirement but lacks return value information, error scenarios, or behavior on duplicate entries. It is adequate for basic use but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaningful context to each parameter, including example values (e.g., 'wg0', '10.10.0.2/32') and clarifies that endpoint fields are optional. This compensates well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add WireGuard peer to an interface' in Indonesian, with a precise action on a specific resource. It distinguishes from sibling tools like wireguard_peers (which lists peers) and wireguard_interfaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes a required environment variable (MIKROCLAW_ALLOW_WRITE=true) as a prerequisite but offers no guidance on when to use or avoid this tool versus alternatives. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arp_tableB
Tabel ARP (pemetaan IP <-> MAC yang terlihat router).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the content (IP-MAC mapping visible to router) but does not disclose any behavioral traits like read-only nature, output format, or potential delays. The description is too minimal for a no-annotation case.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is appropriately sized for a simple listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description fails to provide complete context. It does not describe return format, pagination, or how this tool fits among siblings like 'neighbors' or 'routing_table'. For a tool with zero complexity, it is minimally adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%. According to rules, baseline is 4 for zero-parameter tools. The description adds no extra param info but is not required to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves the ARP table, which maps IP to MAC addresses visible to the router. The verb 'tabel' (table) implies listing, and the resource is specific (ARP table). It distinguishes from siblings like 'routing_table' or 'neighbors' by focusing on IP-MAC mapping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'neighbors' or 'routing_table'. The description does not provide context for selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_ip_addressA
Pasang IP address (CIDR) ke sebuah interface. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: address: IP dengan prefix, mis. '192.168.50.1/24'. interface: nama interface, mis. 'bridge1' atau 'ether2'. comment: catatan.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | ||
| comment | No | added-by-mikroclaw | |
| interface | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses it is a write operation and needs a permission flag, but lacks details on error handling, overwrite behavior, or validation of inputs. This is insufficient for a configuration-changing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: one line for purpose and condition, followed by a bulleted list of parameters. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing important context for a write operation: no mention of return values, error scenarios, or safety warnings. With no output schema and no annotations, the description is incomplete for practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, but the description adds examples for each parameter: address format ('192.168.50.1/24'), interface names ('bridge1' or 'ether2'), and comment as 'catatan'. This adds meaningful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it assigns an IP address (CIDR) to an interface, with a specific prerequisite ('BUTUH MIKROCLAW_ALLOW_WRITE=true'). The tool name reinforces the purpose, and it is distinct from siblings like 'add_ipv6_address'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly requires the environment variable MIKROCLAW_ALLOW_WRITE=true, indicating when the tool can be used. However, it does not mention when not to use it or compare to alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bgp_sessionsC
Sesi BGP (status/peer) โ RouterOS v7.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of disclosing behavioral traits. It does not mention that the tool is read-only, requires authentication, or any other side effects. This is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks detail. It is not verbose, but it could be improved by adding more context without being overly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description should elaborate on the return format or behavior. It only mentions 'status/peer' but does not describe what data is returned, making it incomplete for an agent to fully understand the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description cannot add meaning beyond what the schema provides. With no parameters, the baseline is 4, and the description is adequate for this simple tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it is about BGP sessions with status/peer information for RouterOS v7. It clearly identifies the resource and implied action (listing/viewing), but it is brief and does not differentiate from sibling tools like ospf_neighbors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as active_sessions or ospf_neighbors. The description lacks any context about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_hostsA
Tabel host bridge (MAC yang dipelajari tiap port bridge).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral traits. It indicates a read operation (listing learned MACs) but doesn't disclose potential side effects, performance considerations, or data freshness. The description is minimally adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, highly concise. However, it is in Indonesian, which may hinder readability for non-Indonesian speakers. The structure is simple and front-loaded, but could benefit from an English equivalent or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless tool, the description gives the general idea (retrieving bridge host MAC table). However, it doesn't specify the exact output fields or structure, which would help an agent interpret the result. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100% (trivially). The description confirms no input is needed, which is useful. It adds no extra parameter information because none exists, but it correctly implies the tool is a simple list operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a table of host bridge entries (MAC addresses learned per bridge port). This is a specific verb-resource pairing and distinguishes it from siblings like bridge_ports, which likely show port configurations rather than learned MACs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. An agent would have no context about when to choose bridge_hosts over bridge_ports or other network inspection tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_portsB
Pemetaan port ke bridge (interface mana ikut bridge mana).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states the mapping function but does not indicate whether the tool is read-only, what the output format is, or any side effects. This is minimal transparency for a tool with zero annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that earns its place. It is front-loaded with the key action and resource, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is too minimal. It does not explain what the tool returns, how to interpret the mapping, or any usage context. A more complete description would mention that it lists all interfaces and their bridge associations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so schema coverage is 100%. The description adds no parameter info, but none is needed. Baseline for zero parameters is 4, and the description does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Pemetaan port ke bridge (interface mana ikut bridge mana)' clearly states the tool maps ports to bridges. It is specific about the resource (bridge ports) and the action (mapping). However, it does not explicitly differentiate from sibling tools like 'bridge_hosts' or 'ethernet_ports', though the focus on bridge membership is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'bridge_hosts' for hosts on bridges, 'vlans' for VLAN assignments). The description does not specify context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capsman_registrationsB
Klien yang terhubung lewat CAPsMAN. Auto legacy atau wifiwave2.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions coverage of 'auto legacy atau wifiwave2' but does not describe whether the operation is read-only, any side effects, or permissions needed. The minimal description fails to compensate for the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that conveys the core purpose without waste. However, it could be slightly more informative (e.g., clarifying the output) without becoming verbose. Still, it is appropriately compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema, no annotations), the description is minimal. It omits details about the output format, what 'registrations' includes, and any behavioral notes. More context would improve completeness without overwhelming the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% coverage. With no parameters to document, the description adds no parameter information, but this is acceptable as baseline given the schema handles all. The description does not need to elaborate on parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Klien yang terhubung lewat CAPsMAN' which clearly indicates the tool lists clients connected via CAPsMAN. The mention of 'Auto legacy atau wifiwave2' clarifies the scope, though it does not explicitly differentiate from sibling tools like capsman_remote_caps or wifi_registrations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description lacks any conditional, prerequisites, or contrasts with sibling tools, leaving the agent to infer usage context on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capsman_remote_capsA
Daftar CAP (AP) yang dikelola CAPsMAN. Auto legacy (/caps-man) atau wifiwave2.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description indicates a read operation (list) but does not disclose output structure, pagination, or potential side effects. For a parameterless list tool, it is minimally adequate but lacking detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two short sentences, no redundant information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with no parameters and no output schema, the description is mostly complete. Could mention distinction from capsman_registrations, but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description adds no parameter info, but baseline is 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists CAP (AP) managed by CAPsMAN, and indicates auto-detection of legacy vs wifiwave2. The verb 'Daftar' (list) is specific, but does not differentiate from sibling capsman_registrations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like capsman_registrations. The mention of auto-detection implies context but lacks clear when-to-use or when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
certificatesA
Daftar sertifikat di router beserta masa berlaku (audit kedaluwarsa).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It indicates a read-only listing operation and mentions validity period, but does not specify whether it returns all certificates, filtering, or any other side effects. Missing details like if it requires authentication or if it's destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient, and front-loaded. No wasted words; every piece of information is valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 0 parameters and no output schema, the description adequately states what the tool lists (certificates) and what detail (validity). However, it could be more explicit about scope (all certificates) and response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the description does not need to add parameter info. The phrase 'masa berlaku (audit kedaluwarsa)' adds context about the data returned, which goes beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists certificates with validity periods for expiration audit. It uses specific vocabulary ('Daftar sertifikat', 'masa berlaku') and distinguishes from siblings that list other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like other list tools. The purpose is implied, but no exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_for_updatesA
Cek ketersediaan update RouterOS dari channel saat ini (menghubungi server MikroTik).
Tidak mengubah konfigurasi; mengembalikan versi terpasang & versi terbaru bila ada.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the operation is non-destructive and that it contacts a remote server. However, it does not mention potential network requirements, latency, or caching behavior. The behavioral insight is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no unnecessary words. It front-loads the purpose and immediately clarifies the read-only nature. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description covers the essential aspects: purpose, non-destructive behavior, and return value (installed and latest versions). It is complete enough for a simple check operation, though it could hint at the output format more precisely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is 100%. The description adds no parameter details because none are needed. For zero-parameter tools, the baseline is 4, and the description properly explains the channel context ('current channel').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks for RouterOS updates from the current channel by contacting MikroTik servers. It uses a specific verb ('check') and resource ('updates'), and no sibling tool appears to duplicate this functionality, so it is well-distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that the tool does not change configuration, implying it is a read-only operation. However, it does not provide explicit guidance on when to use it (e.g., before upgrading) or when alternatives like system_packages might be more appropriate. The usage context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_backupA
Buat file backup konfigurasi (.backup) di penyimpanan router. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: name: nama file backup (tanpa ekstensi).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | mikroclaw |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description discloses a behavioral requirement (write permission) and implies file creation, but does not detail overwrite behavior, error handling, or whether the tool is destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two sentences and a parameter list. No wasted words; the main action and prerequisite are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers the basic purpose, permission requirement, and parameter format. However, it lacks information about return value, success/failure feedback, or file overwrite behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the parameter 'name' as 'nama file backup (tanpa ekstensi)' (backup file name without extension), adding semantic value beyond the schema. Schema coverage is 0%, so description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'Buat file backup konfigurasi' (create configuration backup) and the resource (.backup file in router storage). However, it does not explicitly distinguish from sibling tools, but no direct backup alternative exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a prerequisite (MIKROCLAW_ALLOW_WRITE=true) indicating when the tool can be used, but lacks explicit guidance on when not to use or comparison to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_firewall_ruleA
Hapus satu aturan firewall filter berdasarkan id. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: rule_id: nilai '.id' aturan (mis. '*5'); ambil dulu dari firewall_filter_rules.
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It discloses the write permission requirement but does not mention that deletion is irreversible, any potential side effects (e.g., if rule is referenced elsewhere), or what the response indicates. Adequate but could be more thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences: purpose, requirement, and argument explanation. No fluff, every sentence adds value. Perfectly sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete-by-ID tool, the description covers operation, argument, and prerequisite. Lacks mention of irreversibility or error conditions, but given the simplicity, it is largely complete. Reference to sibling tool firewall_filter_rules provides necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter rule_id has no schema description (0% coverage). The description compensates by specifying format ('*5'), that it's the '.id' value, and that it must be retrieved from firewall_filter_rules. This adds meaningful context beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: delete a single firewall filter rule by ID. It distinguishes from sibling tools like set_firewall_rule_enabled by specifying 'delete' and references the source of the ID (firewall_filter_rules).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use the tool (when deleting a firewall rule) and provides a crucial prerequisite: obtain the rule ID from firewall_filter_rules first. It also mentions the required environment variable MIKROCLAW_ALLOW_WRITE=true, guiding the agent on correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dhcp_clientB
Status DHCP client (mis. IP WAN yang didapat dari ISP) per interface.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without any annotations, the description should disclose behavioral traits. It implies a read-only operation but does not explicitly state that no modifications are made, whether authentication is required, or how results are structured. The phrase 'per interface' is ambiguous without a parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence. It is front-loaded with the key action word 'Status'. However, it mixes languages (Indonesian) which might reduce clarity for non-Indonesian speakers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless tool, the description is minimally sufficient. However, it does not explain the return format, what 'per interface' means without an interface filter, or any error conditions. More context would improve agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the parameter semantics burden is low. The description adds the context 'per interface' beyond the empty schema, but it does not clarify how this is handled without a parameter. Baseline of 4 is appropriate given zero parameters and 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly indicates the tool retrieves the status of the DHCP client, specifically the WAN IP from ISP, per interface. It uses a specific verb ('Status') and resource ('DHCP client'), and the purpose is distinct from sibling tools like dhcp_leases or dhcp_servers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as dhcp_leases or list_interfaces. The description lacks information about prerequisites, when not to use it, or how it fits into a broader workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dhcp_leasesB
Daftar DHCP lease (klien yang dapat IP dari router).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states that the tool returns a list of DHCP leases, which is transparent enough for a simple read operation. However, it does not disclose if the list includes all leases or only active ones, or any other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the tool's purpose without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a simple list tool, the description is adequate but could be improved by hinting at the return structure or the scope of leases (e.g., current leases from the router's DHCP server).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema description coverage is 100% by default. The description adds value by explaining what a DHCP lease is, going beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists DHCP leases and explains what that means ('klien yang dapat IP dari router'). However, it does not distinguish from related sibling tools like dhcp_servers or dhcp_networks, though the resource is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other DHCP-related sibling tools or similar listing tools. The description provides no context for selection decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dhcp_networksB
Konfigurasi network DHCP: gateway, DNS, netmask yang ditawarkan ke klien.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It mentions 'configuration' but does not clarify if the tool performs read-only listing or modifications, leaving ambiguity about its side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. However, it is in Indonesian, which may reduce clarity for non-Indonesian-speaking agents, but it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is the only context. It does not explain what operation the tool performs (e.g., is it a list or configuration command?), nor does it cover all potential DHCP network fields beyond the three mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is nothing to explain. The description adds no parameter details, but the baseline for zero-parameter tools is 4, as no additional parameter insight is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deals with DHCP network configuration including gateway, DNS, and netmask. However, it does not differentiate from sibling tools like dhcp_servers or add_static_dhcp_lease, and it does not specify whether it lists or modifies configurations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. With related sibling tools (e.g., dhcp_servers, add_static_dhcp_lease), the description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dhcp_serversB
Daftar DHCP server beserta interface & address-pool-nya.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, or side effects. It only describes what it lists, leaving the agent uncertain about potential impacts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that immediately conveys the tool's purpose. No extraneous information, perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no params, no output schema), the description is adequate but lacks details about the return format or the structure of listed data. It does not fully enable an agent to understand the output without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (empty). The description adds no parameter meaning because none exist. Baseline score of 3 is appropriate as the description is neither helpful nor harmful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists DHCP servers with interface and address pools. It uses a specific verb ("Daftar" meaning list) and resource, but does not explicitly differentiate from sibling tools like dhcp_leases or dhcp_networks, though the scope is implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or when to choose dhcp_servers over similar tools like dhcp_leases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_cacheA
Isi cache DNS resolver router (entri yang sedang di-cache).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully communicate behavioral traits. It only states the tool shows cached entries, but does not disclose whether it is a read-only operation, any side effects, rate limits, or that it requires no parameters. This leaves critical behavioral uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately communicates the tool's purpose without any extraneous text. It is optimally front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with no output schema, the description is adequate: it identifies the exact resource and function. However, it could benefit from a note on the output format or that the cache is dynamic, but overall it is sufficiently complete for a simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters with 100% schema description coverage. Per guidelines, baseline is 4. The description adds no parameter info since none exist, so no additional value is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool displays the cached DNS entries of the router resolver. The verb 'Isi' (content) and resource 'cache DNS resolver' are specific, and the parenthetical clarifies it's the cached entries. This distinguishes it from siblings like dns_static (static entries) and dns_settings (settings).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks any guidance on when to use this tool versus alternatives. It does not mention when not to use it, prerequisites, or contrast with sibling tools. Agents must infer from the tool's name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_settingsC
Konfigurasi DNS router: server upstream, cache, allow-remote-requests.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not state whether the tool is read-only, requires authentication, or has side effects. The term 'Konfigurasi' could imply mutation, but no parameters suggest a read operationโthis ambiguity is problematic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (short phrase), but it lacks sentence structure and is only in Indonesian. It could be organized into a clearer statement with a verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain return values or behavior. It lists three configuration aspects but does not describe the output format (e.g., what fields are returned, type of values). The tool is simple but incomplete for an agent to understand what it will receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so schema coverage is 100% trivially. The description adds value by listing the aspects of DNS configuration (upstream server, cache, allow-remote-requests), hinting at output content beyond the empty schema. Baseline for 0 params is 4 per guidelines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description indicates the tool is about router DNS configuration covering upstream server, cache, and allow-remote-requests, but lacks a verb (get/set) and does not distinguish from sibling tools like dns_cache or set_dns_servers. The noun 'Konfigurasi' leaves ambiguity about whether it reads or modifies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Among siblings, there are multiple DNS-related tools (e.g., set_dns_servers, dns_cache), but the description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_staticA
Entri DNS statis (A/CNAME/dll yang dilayani router).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It does not state whether the operation is read-only, destructive, or requires permissions, nor does it mention any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one phrase in Indonesian) with no wasted words. It front-loads the core purpose immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and no annotations, the description covers basic purpose but lacks details on output format, pagination, or error conditions. It is minimally adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters in the input schema, so schema description coverage is 100%. The description does not add parameter meaning since none exist, making a baseline score of 4 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves static DNS entries (A/CNAME/etc) served by the router. It implicitly distinguishes from sibling tools like add_dns_static (adds entries) and dns_cache (DNS cache), making purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Sibling tools exist (e.g., add_dns_static, dns_cache) but the description provides no context for selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ethernet_portsB
Detail port ethernet: link speed, auto-negotiation, status fisik.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose any behavioral traits such as being read-only or having side effects. For a tool with zero annotations, the description should provide more context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, using one sentence to convey the key information. It is front-loaded but slightly under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should provide more detail about return structure. It mentions specific attributes but not the full set, leaving gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, so description cannot add parameter-specific value. Baseline score of 4 is appropriate as there are no parameters to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool details Ethernet port information: link speed, auto-negotiation, and physical status. However, it could be more specific to differentiate from sibling tools like list_interfaces or bridge_ports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Sibling tools include many network-related commands, but no context is provided for selecting this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firewall_connectionsB
Connection tracking aktif (src/dst, protokol, state) โ untuk troubleshooting.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavioral traits. It mentions the data fields (src/dst, protocol, state) but does not state whether the operation is read-only, safe, or has any side effects. The implicit assumption is that it is read-only, but not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence. No wasted words, front-loads core purpose and content. Ideal length for simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and zero parameters, the description could be considered minimally adequate. However, it does not explain the return format, pagination, or how it relates to sibling tools like 'active_sessions' or 'firewall_filter_rules'. Lacks completeness for a troubleshooting tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in input schema, baseline is 4. Description adds context by listing the data fields returned, which helps the agent understand what information the tool provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it is for connection tracking, listing active connections with src/dst, protocol, and state, and for troubleshooting. This is specific and understandable, but it does not differentiate from sibling tools like 'active_sessions' or 'firewall_filter_rules'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when or when not to use this tool. Merely states 'untuk troubleshooting' (for troubleshooting), but lacks context such as alternatives or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firewall_filter_rulesB
Aturan firewall filter (chain input/forward/output).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The minimal description does not disclose behavioral traits such as read-only/read-write, authentication needs, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise single phrase, but could be more informative by adding a verb or brief context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description provides the essential context (chains) but omits what action the tool performs (e.g., listing rules). Adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters, so description does not need to add parameter information. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly indicates the tool deals with firewall filter rules and specifies the chains input/forward/output, distinguishing it from NAT or mangle rules. However, it lacks an explicit verb like 'list' or 'get'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus sibling tools like firewall_nat_rules or firewall_mangle. The agent must infer from the chain mention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firewall_mangleB
Aturan firewall mangle (marking koneksi/paket untuk QoS/policy routing).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks any behavioral disclosure. With no annotations, the agent has no information on whether this tool is read-only or destructive, what side effects exist, or authentication requirements. The vague term 'aturan' (rules) could imply listing or modification, but it's ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no unnecessary words. It is appropriately concise for the limited information provided, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, output schema, and parameters, the description is insufficient. It does not explain what the tool returns (e.g., a list of mangle rules), how it interacts with the firewall, or any usage examples. A tool with zero parameters likely performs a simple list operation, but this is not confirmed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100% (vacuous). The description adds no parameter information, but none is needed. Baseline score of 4 is appropriate given no parameters to describe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as dealing with firewall mangle rules for marking connections/packets for QoS/policy routing. It uses a specific resource name and distinguishes from sibling tools like firewall_filter_rules and firewall_nat_rules, though it doesn't explicitly state the action (list/manage).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no indication of prerequisites, context, or exclusion criteria, leaving the agent without direction on selecting this tool over sibling firewall tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firewall_nat_rulesB
Aturan NAT (srcnat/dstnat), mis. masquerade & port forward.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states 'NAT rules' without mentioning read-only nature, pagination, or any constraints. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence that front-loads the resource and types. Could be slightly more structured, but overall efficient with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no parameters or output schema, the description is adequate but minimal. It does not explain output format or that it lists rules. Sibling tool context adds some completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so schema coverage is 100%. The description adds examples (masquerade, port forward) providing context beyond the schema. Baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides NAT rules (srcnat/dstnat) with examples like masquerade and port forward. It is specific and distinguishes from sibling tools like firewall_filter_rules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as add_nat_rule or delete_firewall_rule. The description does not provide context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hotspot_activeA
User hotspot yang sedang login (aktif).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description trades transparency for a simple read operation. It does not specify whether authentication is required, if the list is real-time, or any side effects. It is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no unnecessary words. It is front-loaded and perfectly concise for the task.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and performs a simple listing of active users, the description is complete. No additional information is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100% (empty properties). According to guidelines, baseline is 4 for no parameters. No further explanation needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns currently active hotspot users ('yang sedang login'). It distinguishes from sibling tools like 'hotspot_users' which likely list all users. The purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'hotspot_users' or 'active_sessions'. There is no mention of context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hotspot_serversA
Daftar server hotspot beserta interface & profilnya.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read operation but does not explicitly state read-only, required permissions, or any side effects. With no annotations, the description should provide more behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is concise and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description covers the essential functionality. It could be more explicit about the return format, but it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters, so schema coverage is 100%. The description adds no parameter info, but baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists hotspot servers along with their interfaces and profiles, which is a specific verb+resource. Among siblings, there is no other hotspot_servers tool, so it distinguishes itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hotspot_usersA
Daftar akun user hotspot (name, profil, kuota).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only mentions listing accounts but does not disclose behavioral traits like read-only nature, authorization needs, or any side effects. Minimal transparency beyond purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single short sentence with no unnecessary words. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool without output schema, description names the fields but doesn't specify return format (e.g., array of objects). Adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, description adds value by indicating the returned fields (name, profile, quota). Baseline for 0 params is 4, and description fulfills that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists hotspot user accounts (verb 'daftar' meaning list) and specifies the included information: name, profile, quota. This distinguishes it from sibling tools like add_hotspot_user (create) and hotspot_active (active sessions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives or exclusions. It only states the function without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interface_traffic_liveB
Ambil satu sampel throughput real-time interface (rx/tx bit-per-detik).
Args: interface: nama interface, mis. 'ether1'.
| Name | Required | Description | Default |
|---|---|---|---|
| interface | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description says 'real-time' and 'sampel' (sample) implying a single read, but lacks details on effects (likely read-only), duration, or safety. Adds basic context but insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short description with an Args section, but the Args section repeats the schema without adding value. Could be more concise by integrating parameter info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema. The description mentions 'throughput real-time interface (rx/tx bit-per-detik)' indicating the return value, but does it return both rx and tx separately? Incomplete for a single-sample tool. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage. The description gives an example 'mis. \'ether1\'' but doesn't explain format, constraints, or default values. Minimal added meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Ambil satu sampel' (take one sample) and the resource 'throughput real-time interface (rx/tx bit-per-detik)'. It distinguishes from sibling tools like 'list_interfaces' which list interfaces but not traffic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like other monitoring tools. No mention of exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_cloudC
IP publik & DDNS MikroTik (/ip/cloud) โ penting untuk remote access.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose whether this tool is read-only, modifies state, or requires authentication. There is no behavioral context beyond the name and a general statement about remote access. For a tool with zero annotations, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one short sentence) and front-loaded with the key terms. No wasted words, but it could be more structured (e.g., separating purpose from usage). The brevity is effective but leaves gaps in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description should compensate by explaining what information the tool provides (e.g., current public IP, DDNS status). The current description only states the topic area, not the actual output or behavior. This is incomplete for an agent to determine if the tool answers a specific user query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and the schema coverage is 100% (empty). The description does not add parameter-level detail but also doesn't need to. However, it fails to explain what the tool returns or how to interpret the output, which is necessary for a parameterless tool. A score of 3 reflects adequate but not excellent handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifically states 'IP publik & DDNS MikroTik (/ip/cloud)' which clearly identifies the resource and its domain. The addition 'penting untuk remote access' gives context, though it doesn't fully disambiguate from sibling tools like dns_settings or ip_services. It's clear enough for an agent to understand the general purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides only a vague usage hint ('penting untuk remote access') but no explicit guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or comparison to sibling tools like check_for_updates or system_identity which might also relate to network access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_poolsA
Daftar IP pool (rentang IP untuk DHCP/PPP).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states this is a list operation, implying read-only behavior, but does not confirm non-destructive nature, permissions, or return format. For a simple list tool with no parameters, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, complete sentence that efficiently conveys the tool's purpose. No filler or redundant information. Front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and a straightforward list operation, the description sufficiently explains what the tool does. There is no missing information for an agent to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty (no parameters), so schema coverage is 100%. The description adds value by clarifying that IP pools are for DHCP/PPP, which gives context beyond the empty schema. Baseline for 0 parameters is 4, and the description meets that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists IP pools and defines them as IP ranges for DHCP/PPP. The verb 'Daftar' (list) and resource 'IP pool' are specific. It implicitly distinguishes from sibling tools like address_lists or dhcp_leases by focusing on pool management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one needs to view IP pool settings, but provides no explicit guidance on when to use this tool versus alternatives (e.g., address_lists for address ranges). No exclusions or context cues are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ipsec_active_peersA
Peer IPsec yang sedang aktif (tunnel yang sedang berjalan).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only, idempotency, or data freshness. For a tool with zero annotation coverage, the description must carry the behavioral burden, but it merely restates the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that front-loads the key term 'Active'. It contains no redundant words and efficiently communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and a simple purpose, the description is nearly complete. However, it lacks explicit mention of the output format or that it is a read operation. Still, it is sufficient for a minimal tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to add parameter information, and the schema already covers everything (100% coverage).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Active IPsec peers (active tunnels)' uses a specific verb (active) and resource (IPsec peers), clearly distinguishing it from the sibling tool 'ipsec_peers' which likely lists all peers. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like ipsec_peers. The description does not mention prerequisites, scenarios, or exclusions, leaving the agent to infer usage without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ipsec_peersC
Konfigurasi peer IPsec (alamat, exchange-mode, profil).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only mentions configuration without detailing behavior like potential overwrites, authentication requirements, or side effects. The description is too vague for a potentially destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure and essential details. It is not front-loaded with critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no input schema parameters, yet the description implies parameters exist. No output schema or additional context is provided, making the description incomplete for a configuration tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists parameters (alamat, exchange-mode, profil) that are not present in the empty input schema, creating confusion. This misalignment reduces clarity for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool configures IPsec peers with specific attributes like address, exchange-mode, and profile. However, it does not differentiate from sibling tools like ipsec_active_peers, which likely lists active peers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as ipsec_active_peers. There is no mention of prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_servicesA
Daftar service IP (api, ssh, www, telnet, winbox) + status & port.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states it returns status & port list. Does not disclose whether it's read-only, requires permissions, or has side effects. For a query tool, minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single short Indonesian sentence that is front-loaded with the tool's purpose. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description covers the key output (services, status, port) but lacks details on output format, ordering, or error handling. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, baseline is 4 per rules. Description does not need to add parameter meaning as there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists IP services with specific examples (api, ssh, www, telnet, winbox) and includes status & port. Uses specific verb 'daftar' (list) and resource 'service IP', distinguishing it from siblings like set_ip_service_enabled.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as set_ip_service_enabled or list_interfaces. Lacks when-to-use, when-not-to-use, or prerequisite context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ipv6_addressesB
Daftar alamat IPv6 yang terpasang per interface.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should fully disclose behavior. It only says 'list' with no mention of being read-only, authentication needs, or that it returns a snapshot. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool, the description is adequate. It identifies the resource and scope. However, it could mention that results are per interface or that it is a read-only view to be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the schema coverage is 100% trivial. The description does not need to add param info. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists IPv6 addresses per interface, which distinguishes it from sibling tools like add_ipv6_address (adds) and ipv6_routes (routes). However, it does not emphasize the read-only nature explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that this is for reading current assignments, while add_ipv6_address is for creating new ones, leaving the agent without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ipv6_firewall_filterB
Aturan firewall filter IPv6.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is a noun phrase with no behavioral disclosure. It does not state whether the tool is read-only, modifies state, or requires authentication. With no annotations provided, the description fails to convey safety or side effects, which is critical for a firewall-related tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single 3-word phrase. While it wastes no words, it may be too terse to convey the tool's exact operation (e.g., list, manage, or view rules). A slightly more descriptive phrase would improve clarity without sacrificing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description leaves significant gaps. It does not explain what the tool returns or how it behaves (e.g., listing all IPv6 filter rules vs. filtering by criteria). The tool's simplicity (zero parameters) partially compensates, but more context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema coverage is 100%. The description 'Aturan firewall filter IPv6' adds meaning by defining the tool's domain (IPv6 firewall rules), which is sufficient given the absence of parameters. The tool's function is implied by the noun phrase, but it could be more action-oriented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Aturan firewall filter IPv6' clearly indicates it is about IPv6 firewall filter rules, distinguishing it from the sibling tool 'firewall_filter_rules' which presumably handles IPv4. The verb 'aturan' (rules) implies a listing or management function, making the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'firewall_filter_rules' or 'add_firewall_drop'. There is no indication of prerequisites, context, or cases where this tool should be preferred, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ipv6_neighborsB
Tabel neighbor IPv6 (NDP) โ pemetaan IPv6 <-> MAC.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral transparency. It only states the output is a table mapping IPv6 to MAC addresses. It does not disclose whether the operation is safe (read-only), whether it refreshes data, or any access requirements. For a simple list tool, this is minimal but acceptable, though more context (e.g., 'shows all neighbors discovered via NDP') would help.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using a single line. It is front-loaded and communicates the core purpose efficiently. However, it could be slightly more descriptive without losing conciseness, earning a 4 rather than 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description is the only source of context. It provides the essential mapping (IPv6 to MAC) but lacks details such as whether the list includes all neighbors or is filterable. For a zero-param tool, it is adequately complete but could mention that it returns the full NDP table.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters (schema coverage 100%), so the description does not need to add parameter information. The baseline for 0 parameters is 4, and the description does not fail to add value since there are no parameters to describe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool displays the IPv6 neighbor table (NDP) mapping IPv6 to MAC addresses. This distinguishes it from sibling tools like 'arp_table' (IPv4 ARP) and 'neighbors' (likely IPv4) by specifying IPv6 and NDP protocol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it does not clarify that this lists discovered neighbors via NDP, not configured addresses (which would be 'ipv6_addresses'). The sibling list includes many networking tools, but no usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ipv6_routesB
Tabel routing IPv6 (route aktif & statis).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only mentions content (active & static routes), not behavioral traits like read-only, output format, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single phrase without unnecessary words. Could be slightly more structured but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description minimally describes the tool's purpose. It could mention returning a list or table to complete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so schema coverage is 100% and description does not need to add param info. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides the IPv6 routing table, specifically active and static routes, distinguishing it from IPv4 routing (sibling 'routing_table') and other IPv6 tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'routing_table' or 'ipv6_neighbors'. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesA
Daftar file di penyimpanan router (backup, export, dll) + ukuran & waktu.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies a read-only operation and states what it returns (files with size and time). However, it does not explicitly mention safety, rate limits, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and front-loaded with verb and object. Every word serves a purpose; no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and a simple purpose, the description fully covers what the tool does and what it returns. It is complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. The description adds significant context by specifying the types of files listed and the information provided (size & time), exceeding the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists files from router storage, specifying categories (backup, export, etc.) and includes additional info (size & time). It distinguishes from sibling tools like create_backup which creates files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or not use this tool vs alternatives. However, there are no other file listing tools among siblings, so the usage context is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_interfacesA
Daftar semua interface beserta status running/disabled dan statistik.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the tool's purpose but does not mention any behavioral traits such as authentication requirements, resource impact, or side effects. As a read-only listing, more context would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the essential information without any unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no output schema), the description is fairly complete. It states what it lists and the type of information included. However, it could briefly mention if the output is sorted or if there are any limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters; the baseline score is 4 as per guidelines. The description does not need to add parameter semantics, and it correctly implies that no inputs are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists all interfaces along with running/disabled status and statistics. It uses a specific verb ('list') and resource ('interfaces'), and specifies the information included, distinguishing it from sibling tools that list other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of typical use cases, prerequisites, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ip_addressesA
Daftar alamat IP yang terpasang di tiap interface.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It is a simple read-only listing, and the description is straightforward; no additional behavioral traits (permissions, side effects) are disclosed, but none are expected for a basic list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no waste, directly conveys the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool complexity is low (0 params, no output schema), but the description omits the return format (e.g., interface names, IP addresses). Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (0 params), so baseline is 4. The description adds no parameter info, which is acceptable given the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List IP addresses attached to each interface' using a specific verb and resource, and it distinguishes from sibling tools like arp_table or ipv6_addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives; no explicit context or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
neighborsB
Perangkat tetangga terdeteksi (MNDP/CDP/LLDP) โ router/switch di sekitar.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the behavioral disclosure burden. It only states what the tool returns but does not mention read-only, safety, or output format. While the purpose implies a read operation, the description lacks explicit behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence. It is front-loaded with the key information about detected devices and protocols. However, the use of Indonesian may be a minor barrier for some agents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description provides adequate context for a simple list tool. However, it does not describe the return format (e.g., table columns) or any limitations (e.g., only active neighbors). Slightly under-specified for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is trivially 100%. The baseline score per rules is 4. The description adds no parameter information, which is acceptable given no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists neighboring devices detected via MNDP/CDP/LLDP protocols, distinguishing it from sibling tools like ospf_neighbors or ipv6_neighbors that show network-layer neighbors. However, the lack of an explicit verb (e.g., 'list', 'show') slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like ospf_neighbors or ipv6_neighbors. An agent would need to infer context from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
netwatchA
Daftar host yang dipantau Netwatch beserta status up/down.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the read-only purpose (listing status) but does not provide additional context like caching behavior or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool, the description adequately conveys what is returned (hosts and status) but lacks details on output format or structure, which could help the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100% by default. The description does not need to add parameter information, meeting baseline expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists hosts monitored by Netwatch with up/down status, using a specific verb and resource that distinguishes from sibling tools like 'ping' or 'address_lists'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives; usage is implied but not articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ntp_clientB
Status & konfigurasi NTP client (sinkronisasi waktu).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only says 'Status & konfigurasi' but does not clarify if the tool reads, writes, or both, nor does it describe any side effects or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very shortโa single phrase. It is concise but lacks structure. It earns its place but could benefit from additional detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and a minimal description, the tool lacks important context. The agent does not know what the tool returns or what 'konfigurasi' entails. It is incomplete for a no-parameter tool that likely provides both read and write functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters; per guidelines baseline is 4. The description does not need to add parameter semantics since there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for NTP client status and configuration (time synchronization). It is distinct from sibling tools like dhcp_client, but the purpose is concise and directly conveys the resource and action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites or context for using the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ospf_neighborsB
Neighbor OSPF beserta state adjacency โ RouterOS v7.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only gives a basic purpose, omitting behavioral traits like read-only nature, performance, or output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence. Front-loaded with key info. However, the mixed language (Indonesian/English) may reduce clarity for some agents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too sparse. It doesn't explain what the output contains or how to interpret adjacency states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Per guidelines, baseline is 4; the description correctly adds no parameter info since none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it covers OSPF neighbors and adjacency states, clearly identifying the resource and action. It distinguishes from siblings like 'neighbors' and 'bgp_sessions', but could be more explicit (e.g., 'Lists...').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'neighbors' or 'bgp_sessions'. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingB
Jalankan ping dari router ke sebuah alamat (diagnostik konektivitas).
Args: address: host/IP tujuan, mis. '8.8.8.8'. count: jumlah paket (default 3).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states the action ('run ping') without disclosing behavioral traits such as required permissions, rate limits, or what happens on unreachable addresses. Basic transparency is lacking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with separate lines for the overall purpose and the Args section. No unnecessary words. It is efficient but could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple parameters, the description lacks important context: it does not explain the output format (e.g., response time, packet loss) or error handling. For a diagnostic tool, this information is crucial for interpreting results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description includes an Args section that adds meaning beyond the schema: it specifies that 'address' is the target host/IP with an example, and 'count' is the number of packets with a default value of 3. Since schema has no parameter descriptions, this compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it runs a ping diagnostic from router to an address. It uses a specific verb ('Jalankan ping') and resource ('alamat'), and context implies connectivity diagnostics. However, it does not explicitly distinguish from the sibling tool 'traceroute', which has a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a basic usage context (connectivity diagnostics) but provides no guidance on when not to use it or alternatives. For example, it does not mention that traceroute might be preferred for path tracing or that ping may be blocked by firewalls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppp_activeA
Sesi PPP aktif (PPPoE/L2TP/PPTP/SSTP) โ siapa yang sedang dial-in.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose any behavioral traits beyond listing active sessions. There is no mention of authentication requirements, output format, or side effects; it merely states the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and to the point, containing all necessary purpose information with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and the presence of sibling tools like active_sessions, the description is too minimal. It lacks details on output format, pagination, or differentiation from overlapping tools, making it incomplete for an agent to properly understand behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% (trivially). The description does not add parameter information, but baseline for zero parameters is 4. It does not need to compensate further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists active PPP sessions (PPPoE/L2TP/PPTP/SSTP) and asks who is dialing in. It specifies the resource (active PPP sessions) and action (list), and distinguishes from siblings like ppp_secrets and ppp_profiles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking currently connected PPP users but provides no explicit guidance on when to use this tool vs. alternatives like active_sessions. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppp_profilesC
Profil PPP (rate-limit, address pool, DNS untuk akun PPPoE/VPN).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication needs, or side effects. It only lists contained attributes, missing critical operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, with no wasted words. However, it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and many sibling tools, the description lacks completeness. It does not explain what the tool returns, how to interpret the output, or how it differs from related tools like ppp_secrets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters with 100% schema description coverage. Baseline of 3 applies since the description adds no additional meaning beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Profil PPP (rate-limit, address pool, DNS untuk akun PPPoE/VPN)' indicates the tool relates to PPP profiles but does not explicitly state the action (e.g., list, get). The verb is implied but not present, making it slightly vague. However, it does clarify what attributes these profiles contain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like ppp_secrets or ppp_active. The description does not provide context for selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppp_secretsA
Daftar akun PPP (PPPoE/VPN): name, service, profile. Catatan: berisi kredensial.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The note about credentials hints at sensitivity, but there is no disclosure of read-only behavior or authentication requirements. Since no annotations are provided, the description should compensate but fails to do so.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences. The first sentence conveys the core purpose, and the second adds a critical note. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists three fields but does not specify if there are more or if there is any ordering/filtering. With no output schema, more detail would be helpful, but for a simple list tool it is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description adds value by listing the output fields (name, service, profile), which helps the agent understand what data will be returned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists PPP accounts (PPPoE/VPN) and specifies the fields (name, service, profile). It distinguishes itself from sibling tools like 'ppp_active' and 'ppp_profiles' by focusing on secrets/credentials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus siblings like 'ppp_active' or 'add_ppp_secret'. The description does not mention prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queue_treeC
Queue tree (pembatasan bandwidth hierarkis berbasis mark).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It does not state whether the tool is read-only, destructive, or requires specific permissions. The term 'queue tree' implies a listing operation, but this is not confirmed, leaving the agent uncertain about side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, which is efficient but lacks detail. It front-loads the tool's identity but does not fully justify its existenceโadditional context about output or usage would improve it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is the sole source of information. It fails to explain what the tool returns (e.g., list of queue trees? details?), how hierarchical bandwidth works, or how to interpret 'mark'. More completeness is needed for a standalone tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema already provides full coverage. Per guidelines, the baseline is 4. The description does not add parameter semantics, but none are needed as there are no inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as managing queue trees for hierarchical bandwidth throttling based on marks, which is specific and distinguishes it from siblings like 'simple_queues'. However, it lacks a verb (e.g., 'list' or 'show'), so the action is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description only defines what a queue tree is, not the context or conditions for using it. Sibling tools like 'simple_queues' suggest a different use case, but no explicit comparison or recommendation is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
radius_serversA
Daftar server RADIUS yang dikonfigurasi (untuk AAA).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description implies read-only behavior but does not explicitly state or add any behavioral context beyond 'list'. For a simple read tool, this is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, to-the-point sentence with no extraneous words. Efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description is sufficient. It could mention that it returns all configured servers, but the purpose is clearly understood.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. The description does not need to add parameter information, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists configured RADIUS servers for AAA, using specific verb and resource. It distinguishes itself from sibling tools as the only one mentioning RADIUS servers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites or context, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reboot_routerA
Reboot router SEKARANG. Operasi mengganggu โ BUTUH MIKROCLAW_ALLOW_WRITE=true.
Koneksi ke router akan terputus sementara saat proses restart berlangsung.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden of behavioral disclosure. It clearly identifies the tool as disruptive, requiring write permission, and causing temporary connection loss. This covers key behaviors for a reboot tool, though it might omit minor details like the exact duration of disruption.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences. It front-loads the action and critical requirement, and every word serves a purpose. No unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no parameters, no output schema), the description provides sufficient context: what, prerequisite, and consequence. It could mention expected reboot duration or that it is an immediate action, but overall it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100%. According to guidelines, zero parameters earns a baseline of 4. The description does not need to add parameter information, and it does not attempt to mislead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'reboot' and resource 'router' are clear. The description distinctly states the tool's function, and it is the only tool among siblings that performs a router reboot, so there is no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states that the operation requires 'MIKROCLAW_ALLOW_WRITE=true' and warns about temporary disconnection. While it does not explicitly compare to alternatives, there are no alternative reboot tools among siblings, making the guidance adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recent_logsB
Ambil log terbaru dari RouterOS.
Args: limit: jumlah baris terakhir yang dikembalikan (default 50).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as whether the operation is read-only, potential rate limits, or output format. It only states it retrieves logs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two sentences. The first sentence states the purpose, the second explains the parameter. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description is fairly complete. It explains what it does and the parameter. However, it lacks any mention of limitations or default behavior beyond the default value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description explains the single parameter 'limit' as the number of last lines to return, adding semantics beyond the schema. Even though schema coverage is 0%, the description adequately covers the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves the latest logs from RouterOS. The verb 'ambil' (get) and resource 'log' are specific. However, it does not differentiate from sibling tools like system_history that may also provide log data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, context, or when not to use it. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_address_list_entryA
Hapus entri firewall address-list berdasarkan id. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: entry_id: nilai '.id' entri; ambil dulu dari address_lists.
| Name | Required | Description | Default |
|---|---|---|---|
| entry_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the destructive nature through the word 'remove' and the required write permission. Without annotations, the description adequately conveys the operation's effect, though it could detail failure modes or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences plus a clear parameter description. No wasted words; front-loads the action and requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the core operation and parameter source. Lacks mention of return value or success/failure behavior, but for a simple deletion tool, it is largely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description fully explains the single parameter entry_id: it is the '.id' value from address_lists, and how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Remove firewall address-list entry by id', specifying verb and resource. Distinguishes from sibling tools like address_lists (listing) and add_address_list_entry (adding).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists required environment variable (MIKROCLAW_ALLOW_WRITE=true) and advises fetching the ID from address_lists first. Lacks explicit when-not-to-use or alternatives, but the context is clear for a removal tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rest_getA
Generic GET read-only ke path REST apa pun untuk hal yang belum punya tool khusus.
Contoh path: 'interface/wireless', 'ip/dns', 'system/clock', 'ppp/active'. Hanya membaca; tidak mengubah konfigurasi.
Args: path: path REST tanpa awalan /rest, mis. 'ip/dns'.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Hanya membaca; tidak mengubah konfigurasi' (Only reads; does not change configuration), which is a key behavioral trait. No annotations were provided, so this description carries the full burden. It lacks details on authentication or rate limits, but for a generic GET, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, about four lines, with a clear structure: purpose, examples, and argument details. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage, and parameter format. It does not mention the return format (likely JSON), but given no output schema, it's not strictly required. It is missing some behavioral details like error handling, but for a simple GET tool, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the 'path' parameter format ('tanpa awalan /rest, mis. ip/dns'), which adds significant meaning beyond the schema's bare definition. With 0% schema description coverage, the description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a generic GET read-only REST path tool for items without dedicated tools, with examples like 'interface/wireless'. It distinguishes itself from sibling tools such as rest_write (write) and many specific list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'untuk hal yang belum punya tool khusus' (for things without a dedicated tool) and 'Hanya membaca' (read-only), providing strong guidance on when to use. It could be more explicit about avoiding use when a dedicated tool exists, but it's implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rest_writeA
Operasi write generic (PUT/PATCH/DELETE/POST). BUTUH MIKROCLAW_ALLOW_WRITE=true.
Untuk operasi lanjutan yang belum punya tool khusus. Gunakan hati-hati.
Args: method: 'PUT' (tambah), 'PATCH' (ubah by id), 'DELETE' (hapus by id), 'POST' (command). path: path REST tanpa /rest, mis. 'ip/firewall/filter' atau 'ip/firewall/filter/*5'. body: payload JSON (opsional, untuk PUT/PATCH/POST).
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| path | Yes | ||
| method | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It adequately discloses the write nature and method effects (PUT=tambah, PATCH=ubah by id, DELETE=hapus by id, POST=command) but lacks details on error handling, idempotency, or system impact beyond the caution note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: bold header, bullet-style arg list with examples, and a cautionary note. Every sentence is informative with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so missing return value information. Lacks details on error responses and authentication beyond the env variable. For a generic write tool, it covers usage but not outcomes, which is a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet the description fully explains each parameter: method with allowed values and their meanings, path format with examples, and body as optional JSON. This adds significant value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for generic REST write operations (PUT/PATCH/DELETE/POST) and distinguishes itself from specific sibling tools by indicating it's for advanced operations without dedicated tools. However, it doesn't explicitly contrast with 'rest_get' or other read tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the prerequisite (MIKROCLAW_ALLOW_WRITE=true) and provides clear guidance: use only when no dedicated tool exists ('operasi lanjutan yang belum punya tool khusus') and advises caution ('Gunakan hati-hati'). This effectively tells agents when to use and when not to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
routerboard_infoA
Info RouterBOARD: model, serial, firmware terpasang vs tersedia.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explicitly states the tool returns information, implying a read-only operation with no side effects. This is adequate for a simple info tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous words, front-loading the key information about what the tool returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless tool with no output schema, the description is fairly complete. It specifies the type of information returned. However, it could optionally describe the output format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema provides 100% coverage. The description adds value by specifying the data fields returned (model, serial, firmware), exceeding the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides RouterBOARD information including model, serial, and firmware (installed vs available). This is a specific verb+resource that distinguishes it from sibling info tools like system_health or system_resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving RouterBOARD info but does not provide explicit guidance on when to use this tool versus alternatives. No exclusions or when-not-to-use are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
router_usersB
Daftar user RouterOS beserta grup/hak aksesnya.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It only states the purpose but does not mention read-only nature, authentication requirements, or any side effects. Agent cannot determine safety or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the core purpose. No redundant words; highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should indicate return structure or example output. It only says 'list' without specifying fields, making it insufficient for an agent to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter count is 0, so schema coverage is 100%. Baseline 3 applies as description adds no additional parameter meaning beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'list of RouterOS users along with their groups/access rights', specifying the verb (list) and resource (users). This distinguishes it from sibling tools like 'user_groups' which likely lists groups separately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'user_groups' or 'ppp_secrets'. No context on prerequisites, limitations, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
routing_tableC
Tabel routing IP (route aktif & statis).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only discloses that the tool returns both active and static routes. Without annotations, it fails to mention read-only nature, required privileges, or any side effects, leaving essential behavioral traits unknown.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a single sentence. While front-loaded with key information, it could be slightly restructured to include a verb for better clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is minimally complete for a simple list tool. However, it does not specify whether it returns IPv4 only or includes IPv6, which is ambiguous given sibling 'ipv6_routes'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100% trivially. The description adds no parameter information since none exist, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'IP routing table (active & static)' clearly identifies the resource and its scope, making the tool's purpose clear. However, it lacks a verb like 'list' or 'show', which is common for retrieval tools, reducing absolute clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling tools like 'add_static_route' or 'ipv6_routes'. The description never mentions alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedulersA
Daftar scheduler (tugas terjadwal RouterOS).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a read operation (list) but adds no additional behavioral traits such as permissions, rate limits, or pagination. Adequate for a simple list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single clear sentence that front-loads the action and resource. It is concise but could be slightly more informative about what the list contains.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool, the description is complete enough. With no output schema, the agent can infer it returns a list of schedulers. However, given many sibling tools, a brief note on typical use might be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has no parameters, and schema description coverage is 100%. Description adds no parameter information because none exist. Baseline 3 applies due to high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Daftar' (List) and resource 'scheduler' with clarifying context 'tugas terjadwal RouterOS' (scheduled RouterOS tasks). This clearly distinguishes it from sibling list tools for other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing schedulers but provides no explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, which would be helpful given many sibling list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scriptsA
Daftar script tersimpan di RouterOS.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must convey behavior. It implies a read-only listing, but doesn't explicitly state no side effects, permissions required, or output structure. Minimal but adequate for a simple operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. Appropriately sized for a tool with no parameters and straightforward purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so description should describe return format. It only states 'list stored scripts' without detailing output fields (e.g., name, source, etc.). Incomplete for an agent to fully understand what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100%. The description does not need to add parameter details, and baseline is 4 for no parameters. No extra meaning needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Daftar script tersimpan di RouterOS' clearly indicates listing stored scripts, distinguishing it from other list tools like address_lists or arp_table. However, it lacks explicit verb-resource structure in English but is unambiguous in context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Usage is implied for retrieving saved scripts, but no when-not or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_dns_serversB
Set server DNS upstream router. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: servers: daftar IP dipisah koma, mis. '1.1.1.1,8.8.8.8'. allow_remote_requests: (opsional) jadikan router sebagai DNS resolver LAN.
| Name | Required | Description | Default |
|---|---|---|---|
| servers | Yes | ||
| allow_remote_requests | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden and does disclose the write authorization requirement. However, it lacks details on whether the change is immediate, persistent, or requires a reboot, which are typical behavioral traits for a router configuration tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but grammatically awkward ('Set server DNS upstream router') and mixes languages. It covers essentials but could be more polished and front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 2 parameters, the description explains the parameters and a prerequisite. However, it misses behavioral context (e.g., what happens to existing DNS servers, immediate persistence). Adequate but not complete for a configuration tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds valuable meaning: it gives format and example for 'servers' and explains the purpose of 'allow_remote_requests' (making the router a LAN DNS resolver). This goes significantly beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Set server DNS upstream router', clearly indicating it configures the upstream DNS servers. However, it does not explicitly distinguish from sibling tools like dns_settings or dns_static, making the purpose slightly less sharp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only specifies a prerequisite environment variable (BUTUH MIKROCLAW_ALLOW_WRITE=true) but provides no guidance on when to use this tool versus alternatives like dns_settings or add_dns_static.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_firewall_rule_enabledA
Aktif/nonaktifkan satu aturan firewall filter. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: rule_id: nilai '.id' aturan (mis. '*5'). enabled: True mengaktifkan, False menonaktifkan.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| rule_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the permission requirement and the toggle nature but does not disclose side effects (e.g., immediate effect, reversibility, or state persistence). The description lacks behavioral details beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with only two lines of prose plus a well-structured argument list. Every sentence earns its place, though it could be slightly more front-loaded by moving the permission requirement to the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and low complexity, the description covers the essential action and arguments. However, it lacks information about return values, error handling (e.g., invalid rule_id), and the tool's effect on the system's state beyond the immediate change.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters. It fully explains both `rule_id` (with example '*5') and `enabled` (true=enable, false=disable), adding clear meaning beyond the schema's minimal title and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (enable/disable) and the resource (a single firewall filter rule) in both Indonesian and English. It distinguishes from sibling tools like delete_firewall_rule and set_interface_enabled by specifying the exact operation and scope ('satu aturan firewall filter').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite (MIKROCLAW_ALLOW_WRITE=true) and explains the required arguments, but it does not provide guidance on when to use this tool instead of alternatives (e.g., delete or create). Usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_identityA
Ganti nama/identitas router. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: name: nama baru perangkat.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states it changes name and requires write permission. Does not disclose whether change is immediate, persistent, or has side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences plus parameter list. Purpose front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with no output schema, the description is adequate. However, it lacks details on effect timing, rollback, or what happens if invalid name is provided. Could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. Adds meaning for 'name' as 'nama baru perangkat' (new device name), but could be more explicit (e.g., string format). Adequate but not rich.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool changes the router name/identity (Ganti nama/identitas router). Specific verb+resource, distinguishes from siblings like system_identity (read) and other set_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions prerequisite MIKROCLAW_ALLOW_WRITE=true, but no explicit when-to-use or when-not-to-use. Does not name alternatives like system_identity for reading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_interface_enabledA
Aktif/nonaktifkan sebuah interface. BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: interface_id: id internal RouterOS (".id", mis. '*1') atau nama interface. enabled: True untuk mengaktifkan, False untuk menonaktifkan.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| interface_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of behavioral disclosure. It clearly indicates that the tool requires write permission and performs an enable/disable action. However, it does not describe error handling or the impact of changing the state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: one sentence for purpose, one for requirement, then parameter details. It front-loads the key action and requirement, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter mutation tool with no output schema, the description covers purpose, prerequisite, and parameter semantics adequately. No additional context is necessary for effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds substantial meaning to the parameters: interface_id can be an internal id (e.g., '*1') or interface name, and enabled is explicitly mapped to True/False for enable/disable. This compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Aktif/nonaktifkan sebuah interface' (enable/disable an interface), which is a specific verb-resource pair that distinctly identifies the tool's purpose among siblings like set_firewall_rule_enabled.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the prerequisite 'BUTUH MIKROCLAW_ALLOW_WRITE=true' but does not provide explicit guidance on when to use this tool over alternatives or when not to use it. Usage is implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_ip_service_enabledA
Aktif/nonaktifkan sebuah IP service (mis. matikan telnet/ftp). BUTUH MIKROCLAW_ALLOW_WRITE=true.
Args: service_id: '.id' atau nama service (mis. 'telnet'); lihat ip_services. enabled: True mengaktifkan, False menonaktifkan.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| service_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the tool's state-changing nature and required write permission. No annotations exist, but the description adequately conveys the behavioral impact without hidden side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two sentences plus parameter formatting. No unnecessary words, and the main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two required params and no output schema, the description covers all essential aspects: purpose, parameters, precondition. No gaps remain for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the schema: 'service_id' is explained as '.id or name' with reference to 'ip_services', and 'enabled' is clearly defined as True/False action. Schema coverage was 0%, so this is highly valuable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'enable/disable' and resource 'IP service' with an example (telnet/ftp). It distinguishes itself from read-only siblings like 'ip_services' by indicating a write operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case (enable/disable IP service) and a prerequisite (MIKROCLAW_ALLOW_WRITE=true). However, it does not explicitly mention alternative tools for list-only operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simple_queuesB
Daftar simple queue โ pembatasan bandwidth per IP/target.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the tool lists queues but does not mention that it is a read-only operation, what data is returned, or any side effects. The description is too sparse to convey behavioral traits beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately conveys the purpose. It is front-loaded with the verb and resource, and there is no extraneous information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description provides minimal context. It explains what simple queues are but does not describe the output format or any additional details that would help an agent interpret the results. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, and schema description coverage is 100%. Since there are 0 parameters, no additional parameter info is needed. The description appropriately says nothing about parameters. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists simple queues and explains what a simple queue does (bandwidth limitation per IP/target). The verb 'Daftar' (list) and resource 'simple queue' are specific. However, it does not distinguish itself from siblings like 'queue_tree' or 'add_simple_queue', so it loses one point for lack of differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus related tools such as 'add_simple_queue' or 'queue_tree'. There is no mention of context, prerequisites, or alternatives, making it hard for an agent to select the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_healthA
Sensor perangkat keras: suhu, tegangan, kipas (jika didukung board).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description mentions sensor reading but does not state it is read-only, safe, or any permission requirements. Return format not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no wasted words. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple sensor tool with no parameters, but lacks details on return values or behavior. Could mention typical output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage 100%. Baseline 4 applies as description adds nothing needed beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it reads hardware sensors (temperature, voltage, fan) with board support caveat. Distinguishes from system management siblings like system_resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied use for hardware health monitoring, but no explicit when/when-not or comparison with siblings like system_resource or system_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_historyA
Riwayat perubahan konfigurasi yang dapat di-undo (/system/history).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It only states the tool shows history that can be undone, but does not disclose whether it is read-only, requires specific permissions, or any side effects. More detail would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence. It is concise and front-loaded with essential information. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description is adequate for a simple listing tool. It provides the core functionality. However, mentioning that it is read-only or listing example output would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema coverage is 100%. The description adds meaning by explaining the tool's purpose, which is beneficial even though no parameter documentation is needed. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Riwayat perubahan konfigurasi yang dapat di-undo (/system/history)' which identifies the tool as returning configuration change history that can be undone. It specifies the resource and distinguishes it from siblings like 'recent_logs' which show recent logs, not configuration history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing undoable configuration changes but provides no explicit guidance on when to use this tool versus alternatives such as 'recent_logs' or 'system_health'. There is no mention of prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_identityA
Nama/identitas perangkat RouterOS.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It states the tool returns the device identity, implying a read operation. However, it does not explicitly state it is read-only or disclose any potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence with no unnecessary words. It is front-loaded and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no input parameters and no output schema, the description provides the essential information about the tool's purpose. It is minimally sufficient, though it could clarify the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the description does not need to add parameter details. The baseline score of 4 applies as no parameter explanation is necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is about the device name/identity, which is clear. However, it lacks a verb like 'get' or 'retrieve', but the resource is clearly identified. It is distinct from the sibling 'set_identity'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when or why to use this tool versus alternatives like 'set_identity'. The description does not specify context or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_licenseA
Info lisensi (level/CHR) perangkat.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only states 'Info' implying read-only, but does not explicitly disclose that the tool is non-destructive or any other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with no wasted words. It fronts the purpose and is appropriately sized for a tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description adequately conveys the purpose. However, it does not explain what 'level/CHR' means or return format, which could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so baseline is 4. The description adds value by clarifying that the license info includes level/CHR, providing context beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Info lisensi (level/CHR) perangkat', which translates to 'License info (level/CHR) device'. It specifies the resource (license) and the verb (info), and distinguishes from siblings like system_health or system_resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention context, prerequisites, or comparisons to other system tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_packagesC
Paket RouterOS terpasang (nama, versi, enabled/disabled).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It implies a read-only listing but does not confirm safety, disclose required permissions, output format, pagination, or any side effects. For a tool with no annotations, minimal behavioral information is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one line), but it is written in Indonesian while the tool name and system are presumably English, reducing clarity. It is concise in length but not in communicative effectiveness, as it lacks a verb and proper structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description is the sole source. It barely covers the resource and fields but does not clarify the action (list/get), return type, or any usage constraints. It is minimally complete for a simple listing tool but leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters, so schema coverage is vacuously 100%. Per guidelines, zero parameters baseline is 4. The description does not need to add parameter information; it only states the fields returned, which is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun phrase in Indonesian ('RouterOS installed packages (name, version, enabled/disabled)') rather than an actionable statement. It lacks a verb like 'list' or 'get', making the tool's purpose ambiguous. The name 'system_packages' helps but does not substitute for a clear verb+resource statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There are many sibling list tools (e.g., address_lists, dns_static) but no differentiation. The description does not mention prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_resourceA
Info sistem: versi RouterOS, CPU, memori, uptime, board, arsitektur.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description implies a read-only operation ('Info') but does not explicitly state that it is non-destructive, requires no authentication, or other behavioral traits. For a tool with no parameters, the risk is low, but transparency is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately conveys the purpose and lists key attributes. It is concise, front-loaded, and contains no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description covers the main purpose adequately. It lists the system details that will be returned. However, it could mention that the tool is read-only or safe to call anytime.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add detail beyond the schema. Baseline score of 4 is appropriate as the description already conveys the output scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides system information including specific attributes like RouterOS version, CPU, memory, uptime, board, and architecture. This is a specific verb-resource combination that distinguishes it from sibling tools like system_health (health stats) or system_identity (identity only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention exclusions or preferred contexts. With many sibling tools, a user would benefit from knowing that this tool returns general system info, while others like system_health or system_identity are more targeted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tracerouteB
Traceroute dari router ke sebuah alamat (jejak hop). Bisa makan beberapa detik.
Args: address: host/IP tujuan, mis. '1.1.1.1'. count: jumlah probe per putaran sebelum berhenti (default 3).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions it can take several seconds, providing a basic behavioral warning. However, with no annotations, it does not disclose whether it modifies state, requires special permissions, or what happens on failure/timeout.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one line for purpose and time cost, then two lines for parameters. No wasted words, well-structured for quick reading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with two parameters, but missing output description (no output schema). The description does not indicate what the tool returns or how to interpret results, which is important for a diagnostic tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description compensates well by explaining both parameters: address (host/IP with example) and count (number of probes with default). This adds meaning beyond the schema's type and title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool performs traceroute from router to address, mentioning hop trace and time cost. It uses the verb 'traceroute' and provides an example. However, it does not explicitly differentiate from sibling tools like ping, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use traceroute versus alternatives such as ping or other network diagnostic tools. The description does not mention prerequisites, contexts, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user_groupsB
Grup hak akses RouterOS beserta policy-nya (audit keamanan).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states the tool is for security audit of groups/policies but doesn't disclose read-only nature, permissions, or other behavioral traits. Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and front-loaded. Every word earns its place, though could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and zero parameters. Description implies it returns groups and policies but doesn't explicitly state it lists them or describe return format. Adequate but leaves room for ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters and schema coverage 100% (by default). Description doesn't need to add parameter info; baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description specifies it covers RouterOS access groups and their policies for security audit. Clear verb+resource, but doesn't explicitly differentiate from similar sibling tools like 'router_users'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The phrase 'audit keamanan' hints at security context but no explicit when/when-not or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vlansA
Daftar interface VLAN beserta vlan-id & interface induk.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes a list operation without indicating any behavioral traits (e.g., read-only, no side effects). For a simple listing tool, this is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the tool's purpose without any waste. It is front-loaded and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a tool with no parameters and no output schema. It states the action and the data returned. There are no missing details given the simplicity of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100% (empty). The description adds value by specifying what information is returned (vlan-id & parent interface), which goes beyond the empty schema. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists VLAN interfaces with vlan-id and parent interface ('Daftar interface VLAN beserta vlan-id & interface induk.'). This specific verb-resource pair distinguishes it from sibling tools like 'list_interfaces' or 'bridge_ports'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. The context of listing VLAN interfaces is implied by the name and description, but no when-not or alternative tool mentions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wifi_interfacesB
Daftar interface WiFi. Auto-deteksi wifiwave2 (/interface/wifi) atau legacy (/interface/wireless).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The behavior of auto-detecting the API path is disclosed, which is a key trait. However, no annotations are provided, and the description does not cover error cases, performance, or the effect of the operation (though likely read-only).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is concise and front-loaded. Every word adds value; no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description is adequate but lacks details on the return structure or fields. Sibling tools suggest other WiFi-related tools exist, but no cross-referencing is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description does not need to add meaning beyond the schema. Baseline 4 for zero parameters is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists WiFi interfaces and mentions auto-detection between wifiwave2 and legacy. The name and description make the purpose clear, but it does not explicitly differentiate from sibling tools like list_interfaces or wifi_radios.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., list_interfaces for all interfaces, wifi_radios for radios). The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wifi_radiosA
Daftar radio WiFi fisik (wifiwave2).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose whether the tool is read-only, requires permissions, or any side effects. However, given the tool's simplicity (listing), the missing information is less critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loading the essential information. Every word serves a purpose, and there is no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameters, the description is adequate but lacks details about the return format or any constraints. It is minimally complete for a simple list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the baseline is 4. The description does not need to add parameter details, and it correctly summarizes the tool's action without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: listing physical WiFi radios, specifically wifiwave2. It is a specific verb-resource combination that distinguishes it from siblings like wifi_interfaces and wifi_registrations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., wifi_interfaces). The description does not mention any context or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wifi_registrationsA
Klien WiFi yang sedang terhubung (registration table). Auto wifiwave2/legacy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It mentions auto-detection of wifiwave2/legacy, which is helpful, but lacks details on permissions, caching, or whether the table is real-time.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose, and a second sentence adding a key detail. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is largely complete: it identifies what data is returned (registration table of connected WiFi clients). However, it could be improved by mentioning typical fields like MAC address or signal strength.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since there are no parameters (0), the description adds value by explaining the tool's purpose and auto-detection behavior, going beyond the empty schema. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists currently connected WiFi clients from the registration table, with auto-detection of wifiwave2/legacy. This specific verb+resource combination distinguishes it from siblings like capsman_registrations or hotspot_active.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are given. The description implies it is for WiFi client connections, but does not exclude cases where other tools might be more appropriate, such as dhcp_leases for DHCP-based clients.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wireguard_interfacesA
Daftar interface WireGuard (VPN) beserta public key & listen-port.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description indicates a read-only listing but does not disclose details like ordering, pagination, or other returned fields. No annotations to contradict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no wasted words, effectively conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks details about the full set of returned fields; only mentions public key and listen port, but likely more data is returned. No output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. Description adds no parameter information beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists WireGuard interfaces along with public key and listen port, distinguishing it from generic list_interfaces and specific wireguard_peers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives; usage is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wireguard_peersA
Daftar peer WireGuard beserta allowed-address & handshake terakhir.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool returns peer data (list with allowed-address and handshake), which is adequate for a read-only listing tool. However, it does not explicitly confirm it is read-only or mention any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and economical. Every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description is mostly complete. It specifies what data is returned (list of peers with allowed-address and handshake). Minor gap: does not specify whether the list is all peers or filtered; but that is likely clear from context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (empty schema). The description adds no parameter info, but none is needed. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action (listing) and resource (WireGuard peers), and includes key details (allowed-address & last handshake). It effectively distinguishes from sibling tools like 'add_wireguard_peer' which adds a peer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving peer information, but lacks explicit guidance on when to use this tool versus alternatives like 'wireguard_interfaces'. No when-not-to-use or context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
92 tool updates
v0.1.0- First observed
active_sessions - First observed
add_address_list_entry - First observed
add_dns_static - First observed
add_firewall_drop - First observed
add_hotspot_user - First observed
add_ipv6_address - First observed
add_nat_rule - First observed
add_ppp_secret - First observed
add_simple_queue - First observed
add_static_dhcp_lease - First observed
add_static_route - First observed
add_wireguard_peer - First observed
address_lists - First observed
arp_table - First observed
assign_ip_address - First observed
bgp_sessions - First observed
bridge_hosts - First observed
bridge_ports - First observed
capsman_registrations - First observed
capsman_remote_caps - First observed
certificates - First observed
check_for_updates - First observed
create_backup - First observed
delete_firewall_rule - First observed
dhcp_client - First observed
dhcp_leases - First observed
dhcp_networks - First observed
dhcp_servers - First observed
dns_cache - First observed
dns_settings - First observed
dns_static - First observed
ethernet_ports - First observed
firewall_connections - First observed
firewall_filter_rules - First observed
firewall_mangle - First observed
firewall_nat_rules - First observed
hotspot_active - First observed
hotspot_servers - First observed
hotspot_users - First observed
interface_traffic_live - First observed
ip_cloud - First observed
ip_pools - First observed
ip_services - First observed
ipsec_active_peers - First observed
ipsec_peers - First observed
ipv6_addresses - First observed
ipv6_firewall_filter - First observed
ipv6_neighbors - First observed
ipv6_routes - First observed
list_files - First observed
list_interfaces - First observed
list_ip_addresses - First observed
neighbors - First observed
netwatch - First observed
ntp_client - First observed
ospf_neighbors - First observed
ping - First observed
ppp_active - First observed
ppp_profiles - First observed
ppp_secrets - First observed
queue_tree - First observed
radius_servers - First observed
reboot_router - First observed
recent_logs - First observed
remove_address_list_entry - First observed
rest_get - First observed
rest_write - First observed
router_users - First observed
routerboard_info - First observed
routing_table - First observed
schedulers - First observed
scripts - First observed
set_dns_servers - First observed
set_firewall_rule_enabled - First observed
set_identity - First observed
set_interface_enabled - First observed
set_ip_service_enabled - First observed
simple_queues - First observed
system_health - First observed
system_history - First observed
system_identity - First observed
system_license - First observed
system_packages - First observed
system_resource - First observed
traceroute - First observed
user_groups - First observed
vlans - First observed
wifi_interfaces - First observed
wifi_radios - First observed
wifi_registrations - First observed
wireguard_interfaces - First observed
wireguard_peers
TDQS
Each tool targets a specific resource or action, with clear, distinct names. For example, add_dns_static, add_static_dhcp_lease, and delete_firewall_rule are unambiguous. Even generic rest_get/rest_write are clearly labeled for fallback use.
Tool names follow a consistent verb_noun pattern for actions (e.g., add_address_list_entry, set_identity) and simple nouns for data retrieval (e.g., arp_table, dhcp_leases). The naming is uniform with snake_case throughout.
With 92 tools, the set is extremely large for a single server. While the scope of RouterOS management justifies many tools, this count is far above the typical well-scoped range and may overwhelm agents.
The tool set covers most major RouterOS domains (firewall, DHCP, DNS, routing, VPN, hotspot, WiFi, system management, diagnostics) with dedicated tools. Minor gaps exist, such as missing tools for BGP configuration or DHCP lease deletion, but these can be addressed via rest_write.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Marketo MCP server for AI. 130 tools to operate Marketo from Claude, Cursor, or ChatGPT.
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA generic MCP server that dynamically converts OpenAPI-defined REST APIs into tools for LLMs like Claude. It supports multiple authentication methods and transport protocols, enabling seamless interaction with any OpenAPI-compliant API.21MIT
- AlicenseNot gradedqualityCmaintenanceMCP server providing Claude Code with full UniFi network management capabilities -- devices, clients, ports, bandwidth auditing, firewall policies, and traffic rules -- all through natural language.471MIT
- AlicenseNot gradedqualityDmaintenanceHigh-performance TypeScript MCP server for MikroTik RouterOS management, enabling Claude, GPT-4, or any MCP-compatible AI to manage routers through natural language with dynamic API discovery, VPN management, and configuration backup.174MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for interacting with iKuai routers, enabling Claude to query system status, manage devices, and configure router settings via natural language.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Syamsuddin/MikroCLAW'
If you have feedback or need assistance with the MCP directory API, please join our Discord server