Skip to main content

mcp-llmnetops

MCP (Model Context Protocol) server untuk operasi read-only pada perangkat jaringan. LLM (Claude, Copilot, dll.) bisa melihat routing table, interface, BGP, log, config, dan ping perangkat jaringan Anda — hanya melalui daftar perintah yang di-whitelist per platform.

Platform yang didukung

Platform key Vendor / OS Contoh perintah
mikrotik-ros6 MikroTik RouterOS 6 /ip route print, /routing bgp peer print, /export
mikrotik-ros7 MikroTik RouterOS 7 /ip route print, /routing bgp session print, /export
cisco-ios Cisco IOS show ip route, show ip bgp summary
cisco-iosxe Cisco IOS XE show ip route, show ip bgp summary
cisco-iosxr Cisco IOS XR show route, show bgp summary
cisco-nxos Cisco NX-OS show ip route, show ip bgp summary
juniper-junos Juniper Junos show route, show bgp neighbor
aruba-aos-cx Aruba AOS-CX show ip route, show bgp summary
huawei-vrp Huawei VRP display ip routing-table, display bgp peer
ruckus-fastiron Ruckus FastIron show ip route, show ip bgp summary

Setiap platform hanya bisa menjalankan perintah yang terdaftar di src/mcp_llmnetops/platforms.py — perintah lain ditolak. Perintah ping membutuhkan parameter target.

Instalasi

Dengan pipx

pipx install mcp-llmnetops

Dari source

git clone https://github.com/ratnoub/mcp-llmnetops.git
cd mcp-llmnetops
pipx install .
# atau untuk development:
python -m venv .venv && . .venv/Scripts/activate   # Windows
pip install -e ".[dev]"

Konfigurasi device

Salin devices.example.yaml menjadi devices.yaml dan isi dengan device Anda:

devices:
  - name: mikrotik-core-01
    host: 192.168.1.1
    platform: mikrotik-ros7
    username: admin
    password: ${MIKROTIK_CORE01_PASSWORD}   # dari environment variable

  - name: cisco-edge-01
    host: 10.0.0.1
    platform: cisco-ios
    username: netops
    password: ${CISCO_EDGE01_PASSWORD}

Field yang tersedia per device:

Field Wajib Default Keterangan
name ya — Nama unik device (dipakai LLM)
host ya — IP atau hostname
platform ya — Salah satu platform key di tabel di atas
username ya — Username SSH
password salah satu — Password SSH (atau ssh_key)
ssh_key salah satu — Path ke file private key SSH
port tidak 22 Port SSH
timeout tidak 60 Timeout per perintah (detik)
known_hosts tidak auto auto (simpan key baru), strict (~/.ssh/known_hosts), no-check

Nilai string bisa memakai environment variable: ${NAMA_VAR}.

Lokasi file config (urutan pencarian):

  1. --config <path>
  2. Environment variable MCP_LLMNETOPS_CONFIG
  3. ./devices.yaml (working directory)
  4. ~/.config/mcp-llmnetops/devices.yaml

Registrasi ke MCP client

Claude Desktop / Claude Code

{
  "mcpServers": {
    "llmnetops": {
      "command": "mcp-llmnetops",
      "args": ["--transport", "stdio", "--config", "C:/path/to/devices.yaml"],
      "env": {
        "MIKROTIK_CORE01_PASSWORD": "rahasia",
        "CISCO_EDGE01_PASSWORD": "rahasia"
      }
    }
  }
}

Copilot CLI / client lain (stdio)

{
  "mcpServers": {
    "llmnetops": {
      "command": "mcp-llmnetops",
      "args": ["--transport", "stdio"],
      "env": {
        "MCP_LLMNETOPS_CONFIG": "C:/path/to/devices.yaml"
      }
    }
  }
}

Akses via HTTP (streamable-http)

Secara default server berjalan sebagai HTTP server di port 5758, bisa diakses di http://<IP>:5758/mcp. Cocok untuk client MCP yang mendukung transport streamable-HTTP.

# jalankan server (default sudah streamable-http di 0.0.0.0:5758)
mcp-llmnetops --config devices.yaml

Client MCP cukup menunjuk ke endpoint:

http://<IP-server>:5758/mcp

Catatan: karena default-nya HTTP, client berbasis stdio (Claude Desktop, Copilot CLI) harus menambahkan --transport stdio seperti contoh di atas.

Tools yang tersedia

Setiap perintah whitelisted terdaftar sebagai tool MCP tersendiri (satu tool per platform × perintah), sehingga LLM cukup memanggil tool yang tepat tanpa perlu menyebutkan string perintah. Total 95 tool: 3 tool umum + 92 tool per-perintah.

Tool umum

Tool Fungsi
list_devices Daftar device yang terkonfigurasi
list_platforms Daftar platform yang didukung
test_connection(device) Tes koneksi SSH ke device

Tool per-perintah

Nama tool mengikuti skema <platform>_<perintah>, dengan platform key memakai underscore (mis. cisco-ios → cisco_ios, aruba-aos-cx → aruba_aos_cx). Semua tool menerima parameter device (nama device dari list_devices). Tool ping tambahan menerima parameter wajib target.

Contoh nama tool:

Tool Perintah yang dijalankan
mikrotik_ros7_ip_route_print /ip route print
mikrotik_ros7_routing_bgp_session_print /routing bgp session print
cisco_ios_show_ip_route show ip route
cisco_ios_show_ip_bgp_summary show ip bgp summary
cisco_iosxr_show_route show route
juniper_junos_show_bgp_neighbor show bgp neighbor
huawei_vrp_display_ip_routing_table display ip routing-table
aruba_aos_cx_show_bgp show bgp
cisco_ios_ping ping <target>

Contoh alur penggunaan oleh LLM:

list_devices()
  → "- mikrotik-core-01: 192.168.1.1:22 [mikrotik-ros7] user=admin"

mikrotik_ros7_ip_route_print(device="mikrotik-core-01")
  → "<routing table output>"

cisco_ios_ping(device="cisco-edge-01", target="8.8.8.8")
  → "<ping output>"

Keamanan

  • Whitelist ketat: hanya perintah yang terdaftar per platform yang bisa dijalankan. Tidak ada eksekusi perintah arbitrer.
  • Read-only: semua perintah yang diizinkan bersifat read-only (show/print/display/ping).
  • Kredensial: disarankan memakai environment variable (${VAR}) alih-alih plaintext.
  • SSH host key: mode auto menyimpan host key baru di ~/.config/mcp-llmnetops/known_hosts; gunakan strict untuk verifikasi ketat.
  • File devices.yaml mengandung kredensial — jangan di-commit (sudah ada di .gitignore).

Development

pip install -e ".[dev]"
pytest

Jalankan server manual:

mcp-llmnetops --config devices.yaml            # HTTP di http://0.0.0.0:5758/mcp (default)
mcp-llmnetops --transport stdio                # stdio (untuk client yang launch proses)
mcp-llmnetops --port 9999                      # ganti port HTTP
mcp-llmnetops --host 127.0.0.1                 # bind ke localhost saja
mcp-llmnetops --version

Lisensi

MIT

Metadata

Release files for mcp-llmnetops 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-llmnetops 0.1.1
File Size Uploaded
mcp_llmnetops-0.1.1.tar.gz 15.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-llmnetops 0.1.1
File Interpreter ABI Platform
mcp_llmnetops-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 31.6 kB

Release files / mcp_llmnetops-0.1.1.tar.gz

Download URL mcp_llmnetops-0.1.1.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c10202bc37a88012a893790a9774086fba35ea4880f850e987d51aaa0c5b94e4
BLAKE2b-256 checksum
How to use checksums
184bfdbbcac561886ba5211bf37f1c9331f9cd5f04b181615937421dcb945f42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / mcp_llmnetops-0.1.1-py3-none-any.whl

Download URL mcp_llmnetops-0.1.1-py3-none-any.whl
Size 15.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d6ecd20744619946f953115c91f6950e522d8c6a2662ce480b302ed4f830612d
BLAKE2b-256 checksum
How to use checksums
48d78ef4ff74c01d1f367a1e24ac3071c350523b8048795ec92880b2385c07a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page