MikroCLAW

MikroCLAW

MCP server that enables Claude Code to access, monitor, and manage MikroTik RouterOS devices via its REST API, with 92 tools for read-only and optional write operations.

Category
Visit Server

README

<div align="center">

<img src="docs/mikroclaw-banner.png" alt="MikroCLAW โ€” MikroTik + CLAW (Claude): MCP server + Pulse dashboard" width="100%">

๐Ÿฆ… 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".

Versi Lisensi Python RouterOS MCP Tools Skills Platform Read-only default Bahasa

</div>

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 MIKROCLAW_ALLOW_WRITE.
๐Ÿ”‘ Kredensial via .env 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), detect_roles, & rest_get/rest_write generic untuk path apa pun.
๐Ÿง  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 uv, dependency, .env, daftar MCP.
๐ŸŒ 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

  1. Bagaimana Claude Code mengakses MikroTik
  2. Prasyarat
  3. Persiapan RouterOS
  4. Instalasi
  5. Konfigurasi (.env)
  6. Menghubungkan ke Claude Code
  7. Daftar tool
  8. Skills (playbook orkestrasi)
  9. MikroCLAW Pulse โ€” monitoring live
  10. Contoh penggunaan
  11. Uji manual tanpa Claude
  12. Keamanan
  13. Troubleshooting
  14. Kompatibilitas RouterOS v6 vs v7
  15. Struktur proyek
  16. Pengembangan: menambah tool
  17. Riwayat versi
  18. Lisensi

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 DHCP

Rinciannya:

  1. Anda menulis prompt biasa, mis. "siapa saja klien DHCP yang aktif?".
  2. Claude Code memilih tool dhcp_leases dan memanggilnya lewat protokol MCP (stdio).
  3. MikroCLAW (client.py) mengirim GET https://<router>/rest/ip/dhcp-server/lease dengan Basic Auth dari .env.
  4. RouterOS membalas JSON; MikroCLAW meneruskannya ke Claude.
  5. Claude meringkas/menyajikan hasil untuk Anda.

RouterOS REST memetakan path konsol ke URL secara langsung, contoh:

Perintah konsol RouterOS Operasi REST
/interface print GET /rest/interface
/ip address print GET /rest/ip/address
tambah item PUT /rest/<path> (+ body JSON)
ubah item ber-.id PATCH /rest/<path>/<id>
hapus item ber-.id DELETE /rest/<path>/<id>
command (ping, dst.) POST /rest/<path>

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/24

Membuat 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=no

Karena sertifikat self-signed, biarkan MIKROTIK_VERIFY_TLS=false di .env (default). Set true hanya 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 irm .../bootstrap.ps1 | iex
๐Ÿš€ Bootstrap 1-baris macOS / Linux Belum punya repo, ingin clone + install sekaligus curl -LsSf .../bootstrap.sh | bash
๐Ÿ› ๏ธ Installer lokal Windows Sudah punya repo .\install.ps1 (atau double-click install.bat)
๐Ÿ› ๏ธ Installer lokal macOS / Linux Sudah punya repo ./install.sh
โœ‹ Manual semua Ingin kontrol penuh tiap langkah cp .env.example .env lalu uv sync

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 | iex

Opsi B โ€” sudah punya repo: masuk folder MikroCLAW lalu double-click install.bat, atau di PowerShell:

.\install.ps1

Argumen 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 | bash

Opsi B โ€” sudah punya repo:

cd /path/ke/MikroCLAW
./install.sh

Argumen 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
MIKROTIK_HOST โœ… โ€” IP/hostname router, mis. 192.168.88.1.
MIKROTIK_USER โ€” admin User RouterOS (disarankan user khusus least-privilege).
MIKROTIK_PASSWORD โ€” (kosong) Password user tersebut.
MIKROTIK_USE_TLS โ€” true true โ†’ HTTPS (www-ssl), false โ†’ HTTP.
MIKROTIK_PORT โ€” 443/80 Port REST. Default mengikuti USE_TLS.
MIKROTIK_VERIFY_TLS โ€” false Verifikasi sertifikat TLS. false cocok untuk self-signed.
MIKROTIK_TIMEOUT โ€” 10 Timeout request (detik).
MIKROCLAW_ALLOW_WRITE โ€” false Gerbang keamanan. true mengaktifkan tool yang mengubah konfigurasi.

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=false

Menghubungkan 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 connected

Saat 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)" : 22

Cakupan domain READ (ringkas):

Domain Contoh tool
๐Ÿ–ฅ๏ธ Sistem & perangkat system_resource, system_health, routerboard_info, system_packages, system_license
๐Ÿ”Œ Interface & L2 list_interfaces, ethernet_ports, bridge_ports, bridge_hosts, vlans
๐ŸŒ IP & routing list_ip_addresses, routing_table, arp_table, neighbors, dhcp_*
๐Ÿ›ก๏ธ Firewall & NAT firewall_filter_rules, firewall_nat_rules, firewall_mangle, address_lists, firewall_connections
๐Ÿ“ถ WiFi & CAPsMAN wifi_interfaces, wifi_registrations, wifi_radios, capsman_remote_caps
๐Ÿ” VPN & tunnel wireguard_*, ppp_active, ppp_secrets, ipsec_peers, ipsec_active_peers
๐Ÿ“ˆ QoS & bandwidth simple_queues, queue_tree, ppp_profiles, ip_pools
๐ŸŒ IPv6 ipv6_addresses, ipv6_routes, ipv6_firewall_filter, ipv6_neighbors
๐Ÿงญ Routing dinamis bgp_sessions, ospf_neighbors
๐Ÿ‘ฅ Hotspot & AAA hotspot_servers, hotspot_active, hotspot_users, radius_servers
๐Ÿ”Ž Keamanan & audit router_users, user_groups, active_sessions, certificates, ip_services
๐Ÿฉบ Diagnostik ping, traceroute, interface_traffic_live, recent_logs, netwatch, check_for_updates
๐Ÿงญ Deteksi peran detect_roles (klasifikasikan fungsi router dari bukti konfigurasi)
๐Ÿค– Fitur cerdas AI simulate_packet, simulate_firewall_change (Twin) ยท analyze_client_behavior (Sentinel) ยท config_snapshot, config_diff (Chronicle) ยท explain_incident (Replay) ยท business_report (Concierge)

Read โ€” selalu aktif

Tool Parameter Fungsi REST
system_resource โ€” Versi RouterOS, CPU, memori, uptime, board, arsitektur. GET /system/resource
system_identity โ€” Nama/identitas perangkat. GET /system/identity
list_interfaces โ€” Semua interface + status running/disabled + statistik. GET /interface
list_ip_addresses โ€” Alamat IP per interface. GET /ip/address
dhcp_leases โ€” Klien DHCP yang mendapat IP dari router. GET /ip/dhcp-server/lease
arp_table โ€” Pemetaan IP โ†” MAC yang terlihat router. GET /ip/arp
firewall_filter_rules โ€” Aturan firewall filter (input/forward/output). GET /ip/firewall/filter
firewall_nat_rules โ€” Aturan NAT (masquerade, port forward). GET /ip/firewall/nat
routing_table โ€” Tabel routing IP (route aktif & statis). GET /ip/route
simple_queues โ€” Simple queue โ€” pembatasan bandwidth per IP/target. GET /queue/simple
address_lists โ€” Isi semua firewall address-list. GET /ip/firewall/address-list
dns_settings โ€” Konfigurasi DNS: server upstream, cache, allow-remote. GET /ip/dns
dhcp_servers โ€” DHCP server + interface & address-pool-nya. GET /ip/dhcp-server
ppp_active โ€” Sesi PPP aktif (PPPoE/L2TP/PPTP/SSTP). GET /ppp/active
bridge_hosts โ€” Tabel host bridge (MAC per port). GET /interface/bridge/host
neighbors โ€” Tetangga terdeteksi (MNDP/CDP/LLDP). GET /ip/neighbor
system_health โ€” Sensor HW: suhu, tegangan, kipas (jika ada). GET /system/health
netwatch โ€” Host yang dipantau Netwatch + status up/down. GET /tool/netwatch
router_users โ€” Daftar user RouterOS + grup/hak aksesnya. GET /user
wifi_interfaces โ€” Interface WiFi (auto wifiwave2/legacy). GET /interface/wifi โ†ป /interface/wireless
wifi_registrations โ€” Klien WiFi yang terhubung (auto wifiwave2/legacy). GET .../registration-table
wireguard_interfaces โ€” Interface WireGuard (VPN) + public key & port. GET /interface/wireguard
wireguard_peers โ€” Peer WireGuard + allowed-address & handshake. GET /interface/wireguard/peers
ppp_secrets โ€” Akun PPP (PPPoE/VPN) โ€” name/service/profile. GET /ppp/secret
ip_pools โ€” IP pool (rentang IP untuk DHCP/PPP). GET /ip/pool
dns_static โ€” Entri DNS statis (A/CNAME) yang dilayani router. GET /ip/dns/static
ntp_client โ€” Status & konfigurasi NTP client. GET /system/ntp/client
schedulers โ€” Tugas terjadwal RouterOS. GET /system/scheduler
scripts โ€” Script tersimpan di RouterOS. GET /system/script
vlans โ€” Interface VLAN + vlan-id & interface induk. GET /interface/vlan
ip_services โ€” Service IP (api/ssh/www/telnet/winbox) + port. GET /ip/service
dhcp_client โ€” Status DHCP client (mis. IP WAN dari ISP). GET /ip/dhcp-client
ip_cloud โ€” IP publik & DDNS MikroTik (remote access). GET /ip/cloud
system_packages โ€” Paket RouterOS terpasang + status. GET /system/package
routerboard_info โ€” Model, serial, firmware terpasang vs tersedia. GET /system/routerboard
active_sessions โ€” User yang sedang login (audit keamanan). GET /user/active
list_files โ€” File di router (backup/export) + ukuran & waktu. GET /file
firewall_connections โ€” Connection tracking aktif (troubleshooting). GET /ip/firewall/connection
bridge_ports โ€” Pemetaan port ke bridge. GET /interface/bridge/port
certificates โ€” Sertifikat + masa berlaku (audit kedaluwarsa). GET /certificate
dns_cache โ€” Isi cache DNS resolver router. GET /ip/dns/cache
dhcp_networks โ€” Gateway/DNS/netmask yang ditawarkan DHCP. GET /ip/dhcp-server/network
firewall_mangle โ€” Aturan mangle (marking QoS/policy routing). GET /ip/firewall/mangle
queue_tree โ€” Queue tree (bandwidth hierarkis berbasis mark). GET /queue/tree
ppp_profiles โ€” Profil PPP (rate-limit, pool, DNS). GET /ppp/profile
user_groups โ€” Grup hak akses + policy (audit keamanan). GET /user/group
ethernet_ports โ€” Detail port ethernet (link speed, auto-neg). GET /interface/ethernet
ipsec_peers โ€” Konfigurasi peer IPsec. GET /ip/ipsec/peer
ipsec_active_peers โ€” Tunnel IPsec yang sedang aktif. GET /ip/ipsec/active-peers
ipv6_addresses โ€” Alamat IPv6 per interface. GET /ipv6/address
ipv6_routes โ€” Tabel routing IPv6. GET /ipv6/route
ipv6_firewall_filter โ€” Aturan firewall filter IPv6. GET /ipv6/firewall/filter
ipv6_neighbors โ€” Tabel neighbor IPv6 (NDP). GET /ipv6/neighbor
hotspot_servers โ€” Server hotspot + interface & profil. GET /ip/hotspot
hotspot_active โ€” User hotspot yang sedang login. GET /ip/hotspot/active
hotspot_users โ€” Akun user hotspot. GET /ip/hotspot/user
capsman_remote_caps โ€” CAP/AP yang dikelola CAPsMAN (auto legacy/wifiwave2). GET /caps-man/remote-cap โ†ป wifiwave2
capsman_registrations โ€” Klien via CAPsMAN (auto legacy/wifiwave2). GET .../registration-table
wifi_radios โ€” Radio WiFi fisik (wifiwave2). GET /interface/wifi/radio
bgp_sessions โ€” Sesi BGP (v7). GET /routing/bgp/session
ospf_neighbors โ€” Neighbor OSPF + state adjacency (v7). GET /routing/ospf/neighbor
radius_servers โ€” Server RADIUS (AAA). GET /radius
system_history โ€” Riwayat perubahan config (undo). GET /system/history
system_license โ€” Info lisensi (level/CHR). GET /system/license
recent_logs limit (default 50) Log terbaru RouterOS. GET /log
ping address, count (default 3) Ping dari router ke sebuah alamat (diagnostik). POST /ping
traceroute address, count (default 3) Traceroute (jejak hop) dari router. POST /tool/traceroute
interface_traffic_live interface Satu sampel throughput real-time (rx/tx bps). POST /interface/monitor-traffic
check_for_updates โ€” Cek update RouterOS (tidak mengubah config). POST /system/package/update/check-for-updates
detect_roles โ€” Deteksi peran perangkat (gateway NAT, firewall, BGP/OSPF, switch/AP, BRAS, VPN, DHCP/DNS, QoS, dll) + bukti & keyakinan. multi GET (introspeksi)
simulate_packet src, dst, protocol, dst_port, โ€ฆ Twin โ€” telusuri paket hipotetis menembus mangleโ†’dst-natโ†’routingโ†’filterโ†’src-nat di atas ruleset live; lapor verdict + jejak. multi GET (model murni)
simulate_firewall_change src, dst, new_rule, โ€ฆ Twin โ€” uji dampak satu aturan firewall baru SEBELUM diterapkan (diff verdict). multi GET (model murni)
analyze_client_behavior ip (opsional) Sentinel โ€” sidik-jari perilaku per-perangkat dari conntrack; deteksi botnet IoT/miner/scan tanpa signature, berkonteks kelas perangkat. GET /ip/firewall/connection + lease/arp
config_snapshot label Chronicle โ€” simpan snapshot konfigurasi relevan-keamanan (ber-hash) ke disk lokal. multi GET โ†’ file lokal
config_diff simpan Chronicle โ€” diff konfigurasi live vs snapshot terakhir + penilaian risiko (user baru, port mgmt dibuka, persistensi, dll). multi GET โ†’ diff
explain_incident mulai_menit_lalu, selesai_menit_lalu Replay โ€” rekonstruksi telemetri jendela waktu lampau (riwayat Pulse) + anomali untuk RCA "kenapa tadi lemot". file riwayat lokal
business_report plan_down_mbps, wan_interface, โ€ฆ Concierge โ€” terjemahkan telemetri jadi sinyal bisnis RT-RW net (pelanggan, akun nganggur, pencuri bandwidth, utilisasi WAN). multi GET (ppp/hotspot/queue)
rest_get path GET generic ke path REST apa pun (read-only). GET /<path>

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
set_interface_enabled interface_id, enabled Aktif/nonaktifkan interface (by .id atau nama). PATCH /interface/<id>
add_firewall_drop src_address, chain (default forward), comment Tambah aturan DROP untuk sumber tertentu. PUT /ip/firewall/filter
add_address_list_entry address, address_list, comment, timeout Tambah IP/subnet ke firewall address-list. PUT /ip/firewall/address-list
delete_firewall_rule rule_id Hapus satu aturan firewall filter by .id. DELETE /ip/firewall/filter/<id>
set_firewall_rule_enabled rule_id, enabled Aktif/nonaktifkan satu aturan firewall by .id. PATCH /ip/firewall/filter/<id>
add_simple_queue name, target, max_limit Tambah simple queue (batas bandwidth target). PUT /queue/simple
create_backup name (default mikroclaw) Buat file backup konfigurasi (.backup) di router. POST /system/backup/save
reboot_router โ€” Reboot router sekarang (mengganggu koneksi). POST /system/reboot
add_dns_static name, address, ttl Tambah entri DNS statis (A record). PUT /ip/dns/static
add_ppp_secret name, password, service, profile Tambah akun PPP (PPPoE/VPN). PUT /ppp/secret
add_wireguard_peer interface, public_key, allowed_address, endpoint_address, endpoint_port Tambah peer WireGuard. PUT /interface/wireguard/peers
set_ip_service_enabled service_id, enabled Aktif/nonaktifkan IP service (mis. matikan telnet). PATCH /ip/service/<id>
add_nat_rule chain, action, +opsional (protocol, dst_port, to_addresses, to_ports, dll) Tambah NAT: port-forward (dstnat) / masquerade (srcnat). PUT /ip/firewall/nat
add_static_route dst_address, gateway, distance, comment Tambah route statis (termasuk default route). PUT /ip/route
add_static_dhcp_lease address, mac_address, server, comment Pin IP statis ke MAC (static lease). PUT /ip/dhcp-server/lease
assign_ip_address address, interface, comment Pasang IP (CIDR) ke interface. PUT /ip/address
set_identity name Ganti nama/identitas router. POST /system/identity/set
set_dns_servers servers, allow_remote_requests Set DNS upstream router. POST /ip/dns/set
remove_address_list_entry entry_id Hapus entri address-list by .id. DELETE /ip/firewall/address-list/<id>
add_hotspot_user name, password, profile, comment Tambah akun user hotspot. PUT /ip/hotspot/user
add_ipv6_address address, interface, comment Pasang alamat IPv6 ke interface. PUT /ipv6/address
rest_write method (PUT/PATCH/DELETE/POST), path, body Write generic untuk operasi lanjutan. Gunakan hati-hati. sesuai method

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
mikrotik-health-check Laporan kesehatan & maintenance (resource, suhu, firmware, update, WAN, NTP). "cek kesehatan router", "ada update routeros?"
mikrotik-firewall-audit Tinjau filter/NAT/mangle, address-list, koneksi; temuan + rekomendasi. "audit firewall", "firewall monitoring"
mikrotik-security-audit Hardening: service terbuka, user/grup, sesi, sertifikat, DNS, proteksi input. "audit keamanan", "apakah router aman"
mikrotik-network-overview Snapshot inventaris: WAN, subnet, interface/VLAN, routing, klien, tetangga. "overview jaringan", "dokumentasi config"
mikrotik-troubleshoot Diagnosa konektivitas berlapis (L1โ†’IPโ†’DNSโ†’firewall). "internet mati", "tidak bisa browsing"
mikrotik-backup-snapshot Backup biner + snapshot JSON konfigurasi kunci untuk diff/dokumentasi. "backup mikrotik", "snapshot sebelum perubahan"
mikrotik-role-detect Deteksi & jelaskan peran perangkat (gateway/firewall/BGP/AP/BRAS/VPN/โ€ฆ) beserta bukti & keyakinan. "deteksi peran mikrotik", "router ini berfungsi sebagai apa"
mikrotik-twin ๐Ÿ†• 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"
mikrotik-sentinel ๐Ÿ†• Deteksi perangkat terinfeksi โ€” botnet IoT/miner/scan dari perilaku koneksi, tanpa signature. "ada perangkat terinfeksi?", "cek botnet", "kenapa CCTV ini aneh"
mikrotik-chronicle ๐Ÿ†• Mesin waktu konfigurasi โ€” snapshot + diff berisiko untuk deteksi perubahan/intrusi. "apa yang berubah di config?", "deteksi perubahan tak terjadwal", "ada backdoor?"
mikrotik-replay ๐Ÿ†• RCA retrospektif โ€” jelaskan insiden masa lampau dari riwayat telemetri. "kenapa tadi sore lemot?", "internet sempat putus jam berapa"
mikrotik-concierge ๐Ÿ†• 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 bila ANTHROPIC_API_KEY di-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=true dan hanya aksi dari allowlist sempit (blokir_ip, tambah_address_list, nonaktifkan_service) yang persis diusulkan AI โ€” tiap aksi diberi komentar audit added-by-pulse-ai.
# memakai kredensial yang sama dari .env
uv run mikroclaw-web                 # atau:  python -m mikroclaw.web
# buka http://127.0.0.1:8800

Arsitektur 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), bukan monitor-traffic per-interface โ€” jauh lebih ringan untuk router.

ENV Default Keterangan
MIKROCLAW_WEB_HOST 127.0.0.1 Alamat bind. Set 0.0.0.0 untuk diakses dari LAN.
MIKROCLAW_WEB_PORT 8800 Port HTTP laman.
ANTHROPIC_API_KEY (kosong) Mengaktifkan lapis AI (Fase 2). Tanpa ini, kartu AI tampil "nonaktif".
MIKROCLAW_AI_MODEL claude-sonnet-4-6 Model Claude untuk analisis.
MIKROCLAW_AI_INTERVAL 60 Detik antar-analisis otomatis.
MIKROCLAW_AI_MAX_TOKENS 2048 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 /log terbaru 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 (butuh ALLOW_WRITE=true)
  • "Nonaktifkan interface ether5." โ†’ set_interface_enabled (butuh ALLOW_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.45s

Keamanan

  • User least-privilege โ€” buat user khusus (mis. grup read); jangan pakai admin penuh.
  • Pisahkan kredensial โ€” hanya di .env, yang sudah masuk .gitignore. Jangan tempel password di chat atau di .mcp.json.
  • Gunakan TLS โ€” MIKROTIK_USE_TLS=true. Set MIKROTIK_VERIFY_TLS=true setelah memasang sertifikat tepercaya.
  • Batasi sumber akses di router: /ip/service/set www-ssl address=<subnet-tepercaya>.
  • Write off by default โ€” biarkan MIKROCLAW_ALLOW_WRITE=false kecuali memang sedang melakukan perubahan; matikan lagi sesudahnya.
  • Audit โ€” operasi add_firewall_drop menyertakan komentar added-by-mikroclaw agar mudah ditelusuri/dihapus.

Troubleshooting

Gejala Kemungkinan sebab Solusi
MIKROTIK_HOST belum di-set .env belum dibuat/diisi cp .env.example .env, isi MIKROTIK_HOST.
Gagal menghubungi RouterOS ... (timeout) Port REST tertutup / host salah / firewall Cek /ip/service, ketersambungan jaringan, dan MIKROTIK_PORT.
RouterOS membalas 401 User/password salah Periksa MIKROTIK_USER/MIKROTIK_PASSWORD.
RouterOS membalas 404 Path tidak ada di versi RouterOS ini Cek nama path; sebagian fitur beda antar versi.
Error sertifikat / SSL Self-signed + verify aktif Set MIKROTIK_VERIFY_TLS=false.
Operasi write dinonaktifkan Mencoba tool write saat gate off Set MIKROCLAW_ALLOW_WRITE=true di .env, restart server.
Server tak muncul di /mcp .mcp.json belum disetujui Jalankan /mcp, setujui server project-scope; pastikan uv ada di PATH.
Perubahan .env tak terbaca Server masih pakai proses lama Restart koneksi MCP (toggle via /mcp) agar .env dibaca ulang.

Kompatibilitas RouterOS v6 vs v7

REST API hanya ada di RouterOS v7. Jika router Anda v6:

  • Antarmuka tool di server.py tidak perlu berubah.
  • Ganti lapisan transport di client.py ke API biner (port 8728/8729 TLS) memakai library seperti librouteros.
  • RouterOSClient.get/put/patch/delete cukup 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: simulate_packet/simulate_firewall_change), Sentinel (deteksi botnet IoT/miner/scan tanpa signature: analyze_client_behavior), Chronicle (mesin waktu konfigurasi + deteksi intrusi: config_snapshot/config_diff), Replay (RCA retrospektif: explain_incident), Concierge (laporan bisnis RT-RW net: business_report) + 5 skill baru. 100 tool ยท 12 skill ยท 151 test.
v1.6.0 Deteksi peran โ€” tool detect_roles (introspeksi โ†’ klasifikasi gateway/firewall/BGP/OSPF/switch/AP/BRAS/VPN/QoS/โ€ฆ + bukti & keyakinan) & skill mikrotik-role-detect. 93 tool ยท 7 skill.
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 POST /api/remediate.
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 POST /api/analyze.
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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured