Smart Irrigation MCP Server
by nsastry2
README.md
# The-Automated-Smart-Irrigation-and-Soil-Health-Pipeline
An MCP-Driven Agronomic Intelligence System with Built-In Hardware Safety Guardrails
An intelligent, closed-loop environmental agent architecture designed to optimize agricultural water consumption and audit crop soil conditions. Built for the **Agents for Good** track of the [Kaggle AI Agents: Intensive Vibe Coding Capstone Project](https://www.kaggle.com/competitions/vibecoding-agents-capstone-project/overview).
---
## ๐ Project Overview & Problem Statement
Traditional agricultural automation systems rely on rigid, static threshold rules (e.g., *if moisture < 30%, turn on water*). These configurations break down when confronting complex real-world variables, such as ignoring predictive weather APIs or blindly trusting inaccurate rain forecasts while crops actively suffer from dehydration stress.
This project implements an adaptive multi-agent reasoning framework powered by **Gemini 2.5 Flash** and structured using the **Model Context Protocol (MCP)**. The pipeline evaluates live sensor data, detects logical conflicts between atmospheric forecasts and ground truth metrics, automatically accounts for rain-induced nutrient leaching, and actuates irrigation hardware safely through integrated operational guardrails.
---
## ๐ ๏ธ Key Concepts Applied
This project demonstrates three core course concepts to satisfy the capstone technical evaluation matrix:
1. **Agent / Multi-agent System (ADK):** Powered by the `google-genai` SDK, our agent processes complex telemetry and makes contextual agronomic decisions (balancing temperature, moisture, and weather trends) instead of relying on brittle, hardcoded `if/else` logic loops.
2. **MCP Server Integration:** Built a local FastAPI server acting as an MCP host. It standardizes data access by exposing real-time sensor metrics as an **MCP Resource** stream and standardizes farm hardware control by exposing valve actuators as an executable **MCP Tool**.
3. **Security Features (Deterministic Guardrails):** Implemented an operational physical safety gate directly into the pipeline code. If soil moisture exceeds 50% (soggy/wet conditions), the script instantly trips a safety gate, bypassing the LLM entirely to defend against root rot and unnecessary resource spend.
4. Antigravity 2.0
[ MCP Server Resource ] ----> [ Validated Data Schema ] ----> [ Hardware Guardrail ]
(Simulated Telemetry) (Moisture, Temp, Forecast, pH) (Max 50% Moisture Check)
[ Executable MCP Tool ] <==== [ AI Agent Decision Loop ] <========
## ๐งช Advanced Agronomic Reasoning: The Leaching Feedback Loop
A standout feature of this agent is its ability to handle multi-variable environmental relationships:
* **The Problem:** Heavy rainfall washes basic, alkaline nutrients (Calcium, Magnesium) deep into the subsoil, causing permanent chemical changes that lower soil pH (acidification).
* **The Agent Solution:** If the incoming weather feed signals heavy rain while the physical soil pH drops below 6.0, the agent dynamically calculates a **High Leaching Risk**. Rather than just managing water, it halts irrigation and triggers a **Critical ACUP (Acidic Concentration Update)** diagnostic alert, instructing the farmer on soil chemical remediation steps.
---
## ๐ Project Structure
```text
smart-irrigation-pipeline/
โโโ src/
โ โโโ __init__.py
โ โโโ schema.py # Pydantic data schemas verifying telemetry integrity
โ โโโ mcp_server.py # FastAPI application exposing MCP resources and tools
โ โโโ agent.py # Core ADK agent containing logic and guardrails
โโโ requirements.txt # Project dependencies
โโโ README.md # Project report and setup instructions
โก Getting Started & Setup Instructions
1. Install Dependencies
Ensure you are running within an isolated Python virtual environment, then install the required packages:
pip install -r requirements.txt
2. Configure Your Environment Workspace
Set up your Gemini authorization key within your local environment terminal:
export GEMINI_API_KEY="your_actual_gemini_api_key_here"
3. Launch the MCP Server
Start up the FastAPI server to begin exposing live telemetry resource feeds on port 8000:
python -m uvicorn src.mcp_server:app --reload --port 8000
4. Execute the Pipeline Agent
In a separate terminal window, execute the smart agent to run a diagnostics loop and actuate hardware tasks:
python src/agent.py
=====+ (Passed if safe)
(Actuate Irrigation) (Gemini 2.5 Flash Reasoning)
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues