API, Resources & Tools Reference¶
Smart Hydroponic MCP Server mengekspos endpoint Model Context Protocol (MCP) dan HTTP standar yang siap diakses oleh Agen AI (seperti Claude Desktop, Cursor, OpenAI Agents) dan sistem eksternal.
📦 MCP Resources¶
Resources menyediakan data kontekstual yang dapat dibaca (read-only) oleh LLM tanpa memerlukan pemanggilan tool manual.
hydroponic://state/latest¶
Mengambil baris telemetri sensor paling mutakhir dari tabel hydroponic_data dan mengonversinya menjadi string terstruktur yang rapi, padat, dan mudah dipahami oleh LLM.
- URI:
hydroponic://state/latest - Output: Ringkasan multi-kategori mencakup:
- Kualitas Air & Nutrisi: Nilai pH aktual vs ambang batas ideal (5.5 - 6.5), TDS (ppm) vs batas (800 - 1200 ppm), Flowrate (L/min), Total Air (Liter), Jarak Permukaan Air (cm).
- Kondisi Lingkungan (Iklim Mikro): Suhu rata-rata (°C), Suhu atas & bawah, Kelembapan rata-rata (%), Kelembapan atas & bawah, serta Kelembapan media tanam (Moisture).
- Status Aktuator: Status Pompa Sirkulasi (ON/OFF), Grow Light (ON/OFF), dan Mode Otomasi (AUTO/MANUAL).
🛠️ MCP Tools¶
Tools adalah fungsi terparameterisasi dengan validasi tipe data Pydantic ketat yang dapat dipanggil secara dinamis oleh LLM.
1. get_historical_trend (Downsampled Time-Series)¶
Alat analitik utama untuk mengekstrak tren metrik tertentu selama rentang waktu historis tanpa membebani context window LLM. Menggunakan fungsi TimescaleDB time_bucket per jam.
- Parameter:
metric(MetricType Enum, Wajib): Pilihan metrik yang ingin dianalisis:"ph","tds","temperature_avg","humidity_avg","moisture_avg","flowrate","total_litres","distance_cm".
hours(Integer, Default: 24, Batas: 1 - 168): Jendela waktu dalam hitungan jam ke belakang.- Output: List baris agregasi per jam berisi:
timestamp: Waktu awal bucket (formatYYYY-MM-DD HH:MM:SS).metric: Nama metrik yang diminta.average: Rata-rata nilai dalam interval 1 jam.min: Nilai terendah dalam interval.max: Nilai tertinggi dalam interval.samples: Jumlah datapoint sensor yang terkumpul dalam interval tersebut.
2. get_actuator_summary (Evaluasi Keandalan & Uptime)¶
Menghitung persentase keaktifan (uptime percentage) aktuator dan jumlah sampel aktif dalam rentang waktu yang ditentukan.
- Parameter:
actuator(ActuatorType Enum, Wajib):"pump_status","light_status", atau"automation_status".
hours(Integer, Default: 24, Batas: 1 - 168): Rentang waktu jam evaluasi.- Output:
actuator: Nama aktuator.window_hours: Rentang evaluasi (jam).since_utc: Waktu awal evaluasi.total_samples: Total rekaman data dalam jendela waktu.active_samples: Jumlah rekaman dengan status aktif (TRUE).uptime_percentage: Persentase keaktifan (0.0% - 100.0%).status:"NORMAL"atau"NO_DATA".
3. get_latest_sensor_data¶
Mengambil 1 baris rekaman sensor terbaru dalam format JSON dictionary murni. Berguna untuk integrasi terprogram atau sistem visualisasi yang membutuhkan pasangan key-value mentah.
4. get_sensor_data_summary¶
Tool analitik multi-metrik yang mengelompokkan data berdasarkan interval waktu kustom (bucket_width, contoh: "1 day", "12 hours", "1 hour").
- Parameter:
num_buckets(Integer, Default: 7, Max: 14): Jumlah interval bucket.bucket_width(String, Default:"1 day"): Lebar interval bucket waktu.
5. list_database_tables & describe_database_table¶
Tool inspeksi metadata skema database untuk melihat tabel dan struktur kolom yang tersedia.
📝 MCP Prompts¶
diagnose_environment¶
Workflow prompt terstandarisasi yang memandu Agen AI untuk melakukan diagnosis komprehensif terhadap kondisi kebun hidroponik.
- Fungsi: Menginstruksikan AI untuk:
- Membaca resource
hydroponic://state/latest. - Menganalisis parameter terhadap ambang batas agronomi (pH 5.5-6.5, TDS 800-1200 ppm, Suhu 20-28°C, Kelembapan 50-70%, integritas aliran pompa).
- Memanggil tool
get_historical_trendatauget_actuator_summaryjika ada anomali yang mencurigakan. - Menghasilkan laporan diagnosis terstruktur dengan format:
- STATUS KESEHATAN SISTEM: [HEALTHY / WARNING / CRITICAL]
- RINGKASAN KONDISI
- ANALISIS PARAMETER
- POTENSI RISIKO
- REKOMENDASI TINDAKAN CEPAT
🌐 HTTP REST Endpoints¶
| Endpoint | Method | Deskripsi |
|---|---|---|
/ |
GET |
Menampilkan metadata server, versi aplikasi, status operasional, dan info engine database. |
/health |
GET |
Healthcheck endpoint untuk verifikasi kesiapan kontainer Docker / Kubernetes. |
/sse |
GET |
Server-Sent Events (SSE) stream endpoint untuk koneksi MCP client. |