Cisco Packet Tracer MCP Server
README.md
<div align="center">
<img src="demo/banner.png" alt="Packet Tracer MCP — Otomatisasi Cisco Packet Tracer dengan AI" width="100%"/>
# Cisco Packet Tracer MCP Server
### Otomatisasi Perancangan, Konfigurasi, dan Diagnostik Jaringan Cisco Packet Tracer Menggunakan AI
**Jelaskan kebutuhan jaringan Anda dalam bahasa sehari-hari. AI akan merancang topologi, memvalidasi aturan teknis, menyusun konfigurasi IOS CLI, membangun topologi secara langsung (*live deploy*) di Cisco Packet Tracer, hingga memverifikasi koneksi dengan pengujian ping dan capture paket.**
**Baru di v0.12.0 — [PKA Builder](#pka-builder-pembuat-soal--ujian-ccna-otomatis):** Buat ujian dan tugas lab Cisco Packet Tracer (`.pka`) otomatis dengan satu instruksi, lengkap dengan penilaian skor otomatis (*auto-grading*).
<sub>Instalasi otomatis melalui asisten AI: <i>"Install the Packet Tracer MCP from https://github.com/namakaze65-code/MCP-Packet-Tracer.git and set everything up for me."</i></sub>
<br/>
[](https://github.com/namakaze65-code/MCP-Packet-Tracer)
[](https://python.org)
[-00B4D8?style=flat-square)](https://modelcontextprotocol.io)
[](https://www.netacad.com/courses/packet-tracer)
[](LICENSE)
<br/>
<table>
<tr>
<td align="center"><strong>111</strong><br/><sub>Alat MCP (Tools)</sub></td>
<td align="center"><strong>6</strong><br/><sub>Resource MCP</sub></td>
<td align="center"><strong>3</strong><br/><sub>Prompt Pintar</sub></td>
<td align="center"><strong>74+</strong><br/><sub>Model Perangkat</sub></td>
<td align="center"><strong>150+</strong><br/><sub>Modul Perangkat</sub></td>
<td align="center"><strong>15</strong><br/><sub>Tipe Kabel Jaringan</sub></td>
<td align="center"><strong>13</strong><br/><sub>Alat Activity (.pka)</sub></td>
<td align="center"><strong>1.697</strong><br/><sub>Uji Offline (Tests)</sub></td>
</tr>
</table>
</div>
---
## Demonstrasi Sistem
<p align="center">
<img src="demo/live-deploy.gif" alt="Live deploy topologi dari prompt bahasa manusia ke Cisco Packet Tracer" width="800"/>
</p>
<p align="center"><em>Dari teks prompt bahasa manusia langsung menjadi topologi aktif yang terkonfigurasi di Cisco Packet Tracer secara real-time.</em></p>
<table>
<tr>
<td width="50%">
<p align="center"><img src="demo/topology-screenshot.png" alt="Topologi OSPF 3 Router di Packet Tracer" width="100%"/></p>
<p align="center"><strong>Topologi Otomatis</strong><br/><sub>3 Router dengan dynamic routing OSPF, DHCP pool, dan 6 PC yang dibuat dan dirapikan otomatis oleh AI.</sub></p>
</td>
<td width="50%">
<p align="center"><img src="demo/cli-config.png" alt="Konfigurasi Cisco IOS CLI Otomatis" width="100%"/></p>
<p align="center"><strong>Sintaks IOS CLI Asli</strong><br/><sub>Skrip konfigurasi Cisco IOS yang digenerate secara sintaksis dan di-push langsung ke terminal konsol router/switch.</sub></p>
</td>
</tr>
</table>
---
## PKA Builder: Pembuat Soal & Ujian CCNA Otomatis
<p align="center">
<img src="https://raw.githubusercontent.com/Mats2208/MCP-Packet-Tracer/main/demo/pka-banner.png" alt="PKA Builder — Ujian Packet Tracer otomatis untuk instruktur dan mahasiswa CCNA" width="100%"/>
</p>
Mulai dari versi **v0.12.0**, MCP Packet Tracer dilengkapi dengan **PKA Builder**:
- **Pembuatan Soal Ujian Otomatis**: Buat berkas `.pka` (Packet Tracer Activity) lengkap dengan petunjuk instruksi HTML, topologi awal (*initial network*), dan kunci jawaban (*answer network*).
- **Auto-Grading Real-Time**: Siswa/mahasiswa langsung mendapatkan skor persentase secara otomatis saat menyelesaikan langkah konfigurasi di Packet Tracer.
- **Tools `pt_activity_*`**: Membuka, menguji, dan membangun tugas berbasis Activity Wizard di Windows dan macOS.
---
## Arsitektur dan Cara Kerja Sistem
Sistem ini menghubungkan **Model Context Protocol (MCP)** dari AI Coding Agent (seperti Claude Code, Cursor, Antigravity, OpenCode, atau Codex) ke **Cisco Packet Tracer** melalui jembatan komunikasi lokal yang aman:
```mermaid
flowchart TD
User["Pengguna / Teknisi Jaringan<br/>'Buat topologi 3 Router OSPF dengan DHCP dan 6 PC'"] --> Agent["AI Coding Agent<br/>(Claude Code, Antigravity, Cursor, Codex)"]
subgraph MCP_Layer ["Packet Tracer MCP Server (Python)"]
Agent --> Tools["111 pt_* Tools<br/>(Planning, Validation, CLI, Activity, Inspection)"]
Tools --> Core["Planner & Rules Engine<br/>- Alokasi IP / Subnetting<br/>- Validasi Topologi & Kabel<br/>- Generator Skrip JS & Config IOS<br/>- PKA Activity Engine"]
end
subgraph Bridge_Layer ["Jembatan Komunikasi Lokal"]
Core --> HTTP["Local HTTP Bridge<br/>(127.0.0.1:54321 + Token Otentikasi)"]
Core --> FileMB["Fallback File Mailbox<br/>(Bekerja saat jendela ekstensi tertutup)"]
end
subgraph PT_Layer ["Lingkungan Cisco Packet Tracer"]
HTTP --> Ext["MCP Control Center (.pts)<br/>Ekstensi Script Engine Packet Tracer"]
FileMB --> Ext
Ext --> Canvas["Kanvas & Simulasi Perangkat<br/>- Penempatan perangkat otomatis<br/>- Pemasangan kabel presisi<br/>- Injeksi konfigurasi CLI IOS<br/>- Simulasi paket PDU / Ping<br/>- Activity Wizard Grading"]
end
Canvas --> Feedback["Umpan Balik Hasil Diagnostik<br/>Hasil Ping, Tabel Rute, Wireshark Trace, Status Port, Skor .pka"]
Feedback --> Agent
```
---
## Ringkasan Fitur dan Kapabilitas
| Kategori | Deskripsi Kemampuan | Contoh Tools Utama |
| :--- | :--- | :--- |
| **Pembangunan Topologi** | Merancang dari nol, auto-layout rapi, validasi kabel, hingga eksekusi live ke kanvas Packet Tracer. | `pt_full_build`, `pt_plan_topology`, `pt_validate_plan`, `pt_live_deploy` |
| **Subnetting & Addressing** | Alokasi subnet /24, /30 point-to-point, DHCP Server di Router atau Server-PT mandiri, IPv6 dual-stack. | `pt_configure_dhcp_server`, `dual_stack=True` |
| **Routing Dinamis & Statis** | Static route (termasuk floating static backup), OSPF, EIGRP, RIP; HSRP, BGP, dan QoS. | Konfigurasi otomatis; `pt_apply_hsrp`, `pt_apply_bgp`, `pt_apply_qos` |
| **Switching & VLAN** | VLAN, trunking 802.1Q, Router-on-a-Stick, STP, port security, EtherChannel, Wi-Fi AP SSID & MAC filter. | `pt_apply_vlan`, `pt_apply_stp`, `pt_apply_port_security`, `pt_apply_etherchannel`, `pt_wireless_ap` |
| **Voice Over IP (VoIP)** | Cisco CME pada router 2811 dengan registrasi IP Phone (diuji dengan PoE 3560 dan dua IP Phone 7960). | `pt_apply_voice` |
| **Keamanan Perangkat** | ACL (Standard & Extended), NAT/PAT, Device Hardening (SSH, Secret, Banner), dan audit keamanan live. | `pt_apply_acl`, `pt_apply_nat`, `pt_apply_hardening`, `pt_audit_security` |
| **Interaksi Perangkat** | Terminal CLI router/switch, terminal prompt PC (`ping`, `ipconfig`), konfigurasi Server-PT (DHCP, DNS, HTTP, FTP, Email), Web Browser PC. | `pt_cli`, `pt_host_command`, `pt_server_*`, `pt_web_browser` |
| **Verifikasi & Diagnostik** | Real ping dengan parsed latency, health check, diff rencana vs live, inspeksi rute, OSPF, ARP, CDP, STP, DHCP lease. | `pt_verify_connectivity`, `pt_health_check`, `pt_diff`, `pt_read_routes`, `pt_read_ospf`, `pt_read_dhcp_leases` |
| **Analisis Aliran Paket** | Kirim paket PDU, jalankan simulation step-by-step, dan baca log keputusan per-layer dari Packet Tracer. | `pt_send_pdu`, `pt_simulation_mode`, `pt_simulation_step`, `pt_read_packet_trace` |
| **PKA Builder & Ujian** | Bangun aktivitas CCNA berpenilaian otomatis (`.pka`), periksa item jawaban, scoring real-time. | `pt_activity_create_exam`, `pt_activity_check`, `pt_activity_*` |
| **Dokumentasi & Ekspor** | Screenshot kanvas otomatis, anotasi teks/label kabel, simpan/buka berkas `.pkt`, backup config, ekspor topologi. | `pt_screenshot`, `pt_add_note`, `pt_save_project`, `pt_backup_config`, `pt_export` |
---
## Panduan Instalasi Cepat
### Metode 1: Otomatis via Coding Agent (Direkomendasikan)
Cukup berikan instruksi ini pada asisten AI Anda (Antigravity / Claude Code / Cursor / Codex):
```text
Install the Packet Tracer MCP from https://github.com/namakaze65-code/MCP-Packet-Tracer.git and set everything up for me.
```
AI akan mendeteksi sistem operasi Anda, mengunduh repositori, menginstal server MCP dan dependensi Python, serta menempatkan ekstensi Packet Tracer di folder yang tepat.
---
### Metode 2: Instalasi Manual
#### 1. Pasang Manajer Paket `uv`
`uv` menyediakan runtime Python independen tanpa mengganggu instalasi sistem:
* **Windows (PowerShell)**:
```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```
* **macOS / Linux**:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
#### 2. Kloning Repositori
```bash
git clone https://github.com/namakaze65-code/MCP-Packet-Tracer.git
cd MCP-Packet-Tracer
```
#### 3. Pasang Server MCP
```powershell
uv tool install . --force
```
#### 4. Daftarkan Server MCP ke Client Anda
* **Untuk Claude Code**:
```powershell
claude mcp add --scope user --transport stdio packet-tracer "--" uvx --from . packet-tracer-mcp --stdio
```
* **Untuk Antigravity / Cursor / VSCode (`mcp_config.json`)**:
```json
{
"mcpServers": {
"packet-tracer": {
"command": "packet-tracer-mcp",
"args": ["--stdio"]
}
}
}
```
#### 5. Pasang Ekstensi Packet Tracer (`MCP-Control-Center.pts`)
Salin file **`MCP-Control-Center.pts`** ke folder ekstensi Cisco Packet Tracer Anda:
* **Windows**: `C:\Program Files\Cisco Packet Tracer <versi>\extensions\MCPControlCenter\`
* **macOS**: `/Applications/Cisco Packet Tracer <versi>.app/Contents/extensions/MCPControlCenter/`
Saat Packet Tracer dibuka kembali dan muncul dialog: *"Detected a new script module... enable?"*, klik **Yes**.
<p align="center">
<img src="demo/install-demo.gif" alt="Pemasangan ekstensi Packet Tracer" width="700"/>
</p>
---
## Contoh Penggunaan Praktis
Berikut adalah contoh instruksi dalam Bahasa Indonesia yang dapat Anda berikan langsung ke AI:
### 1. Jaringan Multi-Router dengan Dynamic Routing OSPF
> *"Buat topologi 3 Router Cisco 2911 membentuk segitiga redundansi. Hubungkan tiap router dengan kabel serial/gigabit subnet /30. Pasang 1 Switch dan 2 PC di belakang masing-masing router. Aktifkan OSPF area 0 pada semua router dan buat DHCP pool di setiap LAN. Setelah selesai, lakukan tes ping antar PC untuk membuktikan konektivitas dan buatkan laporan rapi format docx."*
### 2. Inter-VLAN Routing (Router-on-a-Stick) dan Extended ACL
> *"Buat topologi Router-on-a-Stick menggunakan 1 Router 2911 dan 1 Switch 2960. Buat VLAN 10 untuk Keuangan dan VLAN 20 untuk Server Web. Aktifkan trunk 802.1Q dan buat sub-interface G0/0.10 serta G0/0.20. Terapkan Extended ACL di router untuk memblokir akses HTTP dari VLAN 10 ke Server Web di VLAN 20, lalu verifikasi dengan capture paket Wireshark di Packet Tracer dan buatkan laporan pengujiannya."*
### 3. Analisis Failover Jalur Redundansi
> *"Simulasikan jalur Jakarta ke Surabaya melalui jalur utama Router 2 dan jalur cadangan Router 4. Jalankan perintah tracert dari PC Jakarta ke PC Surabaya. Kemudian putuskan interface jalur utama (shutdown), jalankan tracert kembali, dan jelaskan mengapa rute otomatis beralih ke jalur cadangan dalam laporan teknis."*
---
## Struktur Direktori Repositori
```text
MCP-Packet-Tracer/
├── .agents/ # Konfigurasi skill & aturan agen otomatis
│ ├── rules/auto_report.md # Aturan wajib pelaporan rapi dan monokrom
│ └── skills/ # Skill pelaporan formal bawaan workspace
├── demo/ # Aset visual, banner, screenshot, dan gif demo
├── docs/ # Dokumentasi teknis lengkap dan panduan tool
├── EXTENSION/ # Source code ekstensi JavaScript Packet Tracer
│ ├── script-engine/main.js # Runtime pengontrol API internal Packet Tracer
│ └── webview/ # Tampilan antarmuka HTML/JS Control Center
├── skills/ # Skill resmi formal-report-generator
│ └── formal-report-generator/ # Skrip pembantu dokumen Word & template
│ ├── scripts/report_helper.py# Pustaka pembantu layout Word & PIL
│ ├── templates/ # Template dokumen Word baku
│ └── SKILL.md # Spesifikasi dan panduan skill laporan
├── src/packet_tracer_mcp/ # Inti server Python Model Context Protocol
│ ├── adapters/mcp/tools/ # Implementasi 111 tools pt_* (ACL, OSPF, VLAN, Activity, dll.)
│ ├── domain/ # Logika perencanaan topologi, aturan validasi & exam rules
│ └── infrastructure/ # Jembatan HTTP loopback, Activity Wizard UI & eksekutor
├── tests/ # 1.697 pengujian unit test dan regresi offline
├── AGENTS.md # Panduan teknis perilaku agen coding AI
├── MCP-Control-Center.pts # Ekstensi siap pakai untuk Cisco Packet Tracer
├── pyproject.toml # Konfigurasi dependensi project Python (v0.12.0)
└── README.md # Dokumentasi utama proyek
```
---
## Aspek Keamanan Sistem
- **Loopback Only**: Server jembatan komunikasi hanya terhubung ke alamat lokal `127.0.0.1` dan menolak seluruh koneksi jaringan luar.
- **Token Otentikasi Acak**: Setiap sesi dilindungi dengan token acak yang disimpan di direktori terproteksi `%LOCALAPPDATA%` pengguna.
- **DNS-Rebinding Defense**: Header Host diverifikasi terhadap `127.0.0.1` / `localhost` dan port riil.
- **Tanpa f-string JavaScript Mentah**: Seluruh parameter perintah diproses melalui enkapsulasi JSON yang ketat untuk mencegah injeksi kode pada Script Engine Cisco Packet Tracer.
---
## Panduan Kontribusi
Kontribusi perbaikan kode, penambahan fitur perangkat, atau dokumentasi:
1. Fork repositori ini: `https://github.com/namakaze65-code/MCP-Packet-Tracer.git`
2. Buat branch fitur baru (`git checkout -b feature/FiturBaru`)
3. Jalankan pengujian: `python -m pytest`
4. Commit perubahan Anda (`git commit -m "feat: Menambahkan fitur X"`)
5. Push ke branch Anda (`git push origin feature/FiturBaru`)
6. Buat **Pull Request** baru.
---
## Lisensi
Proyek ini dilisensikan di bawah lisensi terbuka [MIT License](LICENSE) — © 2026 Mateo ([@Mats2208](https://github.com/Mats2208)). Anda bebas menggunakannya untuk keperluan riset, tugas kuliah, praktikum laboratorium, maupun pengembangan otomasi jaringan korporat.
<div align="center">
<sub>Dikelola oleh <a href="https://github.com/namakaze65-code">namakaze65-code</a> • Menggunakan protokol standar <a href="https://modelcontextprotocol.io">Model Context Protocol (MCP)</a></sub>
</div>
This server cannot be deployed
Maintenance
ActivityActive
ResponsivenessNo recent community issues