Skip to main content
Glama
albertobalsalm0

ESP32-CYD Wi-Fi Analyzer MCP

README.md
# ESP32-CYD Wi-Fi Analyzer MCP

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![MCP Standard](https://img.shields.io/badge/MCP-Model%20Context%20Protocol-green.svg)](https://modelcontextprotocol.io/)
[![Hardware: ESP32 CYD](https://img.shields.io/badge/Hardware-ESP32--2432S028R-red.svg)](https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display)

**ESP32 Cheap Yellow Display (CYD)** ve **Model Context Protocol (MCP)** kullanarak çevredeki Wi-Fi ağlarını tarayan, güvenlik açıklarını analiz eden ve donanım üzerindeki 2.8 inç TFT ekran ile RGB LED üzerinden görsel geri bildirim sunan yapay zeka destekli siber güvenlik analiz cihazı.

---

## Özellikler

* **Uçtan Uca Yapay Zeka Entegrasyonu:** Model Context Protocol (MCP) üzerinden Claude Desktop veya uyumlu herhangi bir LLM istemcisiyle çift yönlü haberleşme.
* **Akıllı Tehdit Analizi:** Şifresiz (OPEN) ağlar, zayıf şifrelenmiş (WEP) erişim noktaları ve sahte/kopya ağlar (Evil Twin / Rogue AP) tespiti.
* **Görsel Durum ve Uyarı Paneli:** 320x240 TFT ekranda dinamik durum kartları (Sarı: Tarama Yapılıyor, Yeşil: Güvenli, Kırmızı: Güvenlik Tehdidi).
* **Aktif Donanım Kontrolü:** Tehdit seviyesine göre renk değiştiren dahili RGB LED (Active-Low sürücü).
* **Kendi Kendini Onaran Bağlantı (Self-Healing):** USB kablosu çıkarılıp takıldığında kilitlenmeyen ve otomatik yeniden bağlanan Python seri port yöneticisi.

---

## Sistem Mimarisi

```mermaid
flowchart LR
    subgraph AI["Yapay Zeka (Brain)"]
        CLAUDE["Claude Desktop / Cursor\n(Claude 3.5/5 Sonnet)"]
    end

    subgraph MCP["Protokol Köprüsü (Middleware)"]
        SERVER["FastMCP Python Server\n(mcp_serial_server.py)"]
    end

    subgraph HARDWARE["Uç Donanım (Edge Device)"]
        CYD["ESP32 Cheap Yellow Display\n(ESP32-2432S028R)"]
        TFT["2.8' TFT Ekran"]
        LED["Dahili RGB LED"]
        CYD --> TFT
        CYD --> LED
    end

    CLAUDE <-->|JSON-RPC Stdio| SERVER
    SERVER <-->|USB Serial (COM3 / 115200 Baud)| CYD
```

---

## Proje Dizin Yapısı

```text
ESP32-CYD-WiFi-Analyzer-MCP/
├── firmware/
│   ├── cyd_wifi_sniffer/
│   │   └── cyd_wifi_sniffer.ino   # ESP32 C++ firmware kodu
│   └── User_Setup.h               # TFT_eSPI kütüphanesi için hazır pin yapılandırması
├── server/
│   └── mcp_serial_server.py       # FastMCP tabanlı Python seri port sunucusu
├── config/
│   └── claude_desktop_config.json.example # Claude Desktop örnek ayar dosyası
├── requirements.txt               # Python bağımlılıkları
├── .gitignore                     # Git yoksayma kuralları
└── README.md                      # Proje dokümantasyonu
```

---

## Donanım ve Pinout Yapılandırması (ESP32-2432S028R)

| Fonksiyon | GPIO Pini | Açıklama |
| :--- | :--- | :--- |
| **Ekran SPI** | GPIO 13 (MOSI), 12 (MISO), 14 (SCK) | SPI Ekran Veri Hattı |
| **Ekran Kontrol** | GPIO 15 (CS), 2 (DC), 4 (RST) | Chip Select, Data/Command, Reset |
| **Ekran Arka Işık (Backlight)** | GPIO 21 (bazı klonlarda 27) | Ekran aydınlatması |
| **RGB LED (Kırmızı)** | GPIO 4 | **Active-Low** (`LOW` = Açık) |
| **RGB LED (Yeşil)** | GPIO 16 | **Active-Low** (`LOW` = Açık) |
| **RGB LED (Mavi)** | GPIO 17 | **Active-Low** (`LOW` = Açık) |
| **Dokunmatik (Touch CS)** | GPIO 33 (2USB v3) / GPIO 36 (Standart) | XPT2046 SPI hattı |

---

## Kurulum Adımları

### 1. Adım: ESP32 Firmware Kurulumu
1. Bilgisayarınıza **[Arduino IDE](https://www.arduino.cc/en/software)** kurun.
2. Arduino IDE içerisinden **Kütüphane Yöneticisi (Library Manager)**'ni açıp şu kütüphaneleri yükleyin:
   * **`TFT_eSPI`** (Bodmer)
   * **`ArduinoJson`** (Benoit Blanchon - v6 veya v7 desteklenir)
3. `firmware/User_Setup.h` dosyasını kopyalayın ve bilgisayarınızdaki `Belgeler/Arduino/libraries/TFT_eSPI/User_Setup.h` dosyası ile değiştirin.
4. `firmware/cyd_wifi_sniffer/cyd_wifi_sniffer.ino` dosyasını Arduino IDE ile açın.
5. Kart olarak **ESP32 Dev Module**, port olarak cihazınızın bağlı olduğu COM portunu (örneğin **COM3**) seçip **Yükle (Upload)** butonuna basın.
6. Yükleme tamamlandığında ekranda mavi renkte **"SISTEM HAZIR"** mesajı belirecektir.

---

### 2. Adım: Python MCP Sunucusu Kurulumu
1. Python 3.10 veya daha güncel bir sürümün kurulu olduğundan emin olun.
2. Gerekli kütüphaneleri yükleyin:
   ```bash
   pip install -r requirements.txt
   ```

---

### 3. Adım: Claude Desktop Yapılandırması
1. **[Claude Desktop](https://anthropic.com/claude/desktop)** uygulamasını kurun.
2. `AppData/Roaming/Claude/claude_desktop_config.json` dosyasını açın (yoksa oluşturun) ve aşağıdaki şekilde düzenleyin:
   ```json
   {
     "mcpServers": {
       "esp32-cyd-sniffer": {
         "command": "python",
         "args": [
           "C:\\path\\to\\your\\repository\\server\\mcp_serial_server.py"
         ]
       }
     }
   }
   ```
3. Claude Desktop uygulamasını tamamen kapatıp yeniden başlatın.

---

## Kullanım ve Örnek Promptlar

Claude Desktop'ta yeni bir sohbet açın ve doğrudan konuşarak cihazı yönetin:

* **Port Bulma:**
  > *"Bilgisayarımdaki aktif portları listeler misin?"*
* **Wi-Fi Taraması:**
  > *"COM3 portundaki cihazımla çevremdeki Wi-Fi ağlarını tara."*
* **Siber Güvenlik Analizi ve Alarm Tetikleme:**
  > *"Bulduğun ağları incele. Şifresiz veya şüpheli ağlar tespit edersen ne olduğunu açıkla ve cihazın ekranına kırmızı renkte bir güvenlik alarmı gönder."*
* **Ekranı Sıfırlama:**
  > *"Ekranı normale döndür ve LED'i yeşil yak."*

---

## Desteklenen LLM Modelleri

Bu proje standart **Model Context Protocol (MCP)** kullandığı için aşağıdaki tüm sistemlerle uyumludur:
* **Claude Desktop (Önerilen):** Claude 3.5 Sonnet / Claude 5 Sonnet (Native MCP istemcisi)
* **Cursor IDE:** Cursor Ayarlar -> MCP menüsü üzerinden entegre edilebilir.
* **VS Code (Cline / Roo Code):** GPT-4o, Gemini 1.5 Pro, Llama-3 veya Claude modelleriyle birlikte kullanılabilir.

---

##  Lisans
Bu proje **MIT Lisansı** ile lisanslanmıştır. Detaylar için `LICENSE` dosyasına bakabilirsiniz.