Serveur MCP — accès IA pour OpenSprinkler

L’intégration MCP (Model Context Protocol) permet à des assistants IA d’interroger et de piloter un contrôleur OpenSprinkler via des outils documentés.

Cette page couvre seulement la configuration MCP et les modes d’exécution. Les autres sujets sont séparés :

Modes de fonctionnement

MCP intégré au firmware

Le serveur MCP intégré fonctionne directement dans les firmwares ESP32 avec USE_OTF :

POST http://<controller-ip>/mcp
Content-Type: application/json

L’authentification utilise le même hash du mot de passe administrateur que l’API REST : ?pw=, en-tête X-OS-Password ou bearer token.

Disponibilité : ESP32 / ESP32-C5 uniquement avec USE_OTF; pas ESP8266 ni OSPi.

Serveur MCP Node.js externe

Le serveur externe dans tools/mcp-server/ tourne hors du firmware et publie l’API REST via stdio. Il fonctionne avec ESP8266, ESP32 et OSPi, avec des outils pour capteurs, monitors, Zigbee, BLE et ressources système lorsque le contrôleur les prend en charge.

Configuration

cd tools/mcp-server
npm install
npm run build

Exemple VS Code / GitHub Copilot :

{
  "servers": {
    "opensprinkler": {
      "type": "stdio",
      "command": "node",
      "args": ["tools/mcp-server/dist/index.js"],
      "env": {
        "OS_BASE_URL": "http://<CONTROLLER-IP>",
        "OS_PASSWORD_HASH": "<MD5-HASH>"
      }
    }
  }
}

Calcul du hash :

echo -n "votre_mot_de_passe_admin" | md5sum | awk '{print $1}'

Vue des outils

Domaine Outils exemples
État contrôleur get_all, get_controller_variables, get_options, get_debug, get_system_resources
Stations et programmes get_stations, get_station_status, get_programs, manual_station_run, change_program
Capteurs et logs get_sensors, get_sensor_values, get_sensor_log, backup_sensor_config
Radios OpenSprinklerPro get_ieee802154_config, get_zigbee_devices, get_zigbee_status, get_ble_devices, get_rainmaker_status
Automatisation list_adjustments, configure_adjustment, list_monitors, configure_monitor

Le serveur MCP n’a pas d’écran UI propre. Pour le diagnostic local, utiliser Diagnostics du système.

Diagnostics du système