Toro · Capability

Toro Golf Course Management

Workflow capability for golf course superintendents combining IntelliDash irrigation control with fleet equipment monitoring. Enables real-time irrigation management, equipment health tracking, environmental sensor monitoring, and agronomic reporting to optimize course conditions.

Run with Naftiko GolfIrrigationFleet ManagementTurf ManagementAgronomics

What You Can Do

GET
Get irrigation status — Get current irrigation system status
/v1/irrigation/status
GET
List irrigation zones — List all irrigation zones
/v1/irrigation/zones
GET
Get irrigation zone — Get zone details
/v1/irrigation/zones/{zoneId}
POST
Start irrigation — Start irrigation for a zone
/v1/irrigation/zones/{zoneId}/start
POST
Stop irrigation — Stop active irrigation
/v1/irrigation/zones/{zoneId}/stop
GET
List fleet equipment — List fleet equipment with health data
/v1/equipment
GET
Get fleet equipment — Get equipment details and health
/v1/equipment/{equipmentId}
GET
Get equipment location — Get equipment current location
/v1/equipment/{equipmentId}/location
GET
List sensors — List all sensors with latest readings
/v1/sensors
GET
Get sensor readings — Get sensor historical readings
/v1/sensors/{sensorId}/readings
GET
Get water usage report — Get water usage report
/v1/reports/water-usage
GET
Get equipment health report — Get equipment health report
/v1/reports/equipment-health

MCP Tools

get-irrigation-status

Get the current status of the golf course irrigation system

read-only idempotent
list-irrigation-zones

List all golf course irrigation zones and their current state

read-only
get-irrigation-zone

Get detailed information for a specific irrigation zone

read-only idempotent
start-zone-irrigation

Manually start irrigation for a specific zone with optional duration

stop-zone-irrigation

Stop active irrigation for a specific zone

list-fleet-equipment

List all golf course fleet equipment with health and status data

read-only
get-fleet-equipment

Get detailed health information for a specific piece of equipment

read-only idempotent
get-equipment-location

Get the current GPS location of a specific piece of equipment

read-only idempotent
list-sensors

List all environmental and soil moisture sensors with latest readings

read-only
get-sensor-readings

Get historical readings for a sensor over a specified time range

read-only idempotent
get-water-usage-report

Get a water usage summary report for a date range to track irrigation efficiency

read-only idempotent
get-equipment-health-report

Get a fleet equipment health summary report showing maintenance status

read-only idempotent

APIs Used

intellidash

Capability Spec

golf-course-management.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Toro Golf Course Management"
  description: "Workflow capability for golf course superintendents combining IntelliDash irrigation control with fleet equipment monitoring. Enables real-time irrigation management, equipment health tracking, environmental sensor monitoring, and agronomic reporting to optimize course conditions."
  tags:
    - Golf
    - Irrigation
    - Fleet Management
    - Turf Management
    - Agronomics
  created: "2026-05-03"
  modified: "2026-05-03"

binds:
  - namespace: env
    keys:
      INTELLIDASH_API_KEY: INTELLIDASH_API_KEY

capability:
  consumes:
    - import: intellidash
      location: ./shared/intellidash.yaml

  exposes:
    - type: rest
      port: 8081
      namespace: toro-golf-api
      description: "Unified REST API for golf course irrigation and fleet management."
      resources:
        - path: /v1/irrigation/status
          name: irrigation-status
          description: "Real-time irrigation system status"
          operations:
            - method: GET
              name: get-irrigation-status
              description: "Get current irrigation system status"
              call: "intellidash.get-irrigation-status"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/irrigation/zones
          name: irrigation-zones
          description: "Irrigation zone management"
          operations:
            - method: GET
              name: list-irrigation-zones
              description: "List all irrigation zones"
              call: "intellidash.list-irrigation-zones"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/irrigation/zones/{zoneId}
          name: irrigation-zone
          description: "Individual irrigation zone"
          operations:
            - method: GET
              name: get-irrigation-zone
              description: "Get zone details"
              call: "intellidash.get-irrigation-zone"
              with:
                zoneId: "rest.zoneId"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/irrigation/zones/{zoneId}/start
          name: start-irrigation
          description: "Start zone irrigation"
          operations:
            - method: POST
              name: start-irrigation
              description: "Start irrigation for a zone"
              call: "intellidash.start-irrigation"
              with:
                zoneId: "rest.zoneId"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/irrigation/zones/{zoneId}/stop
          name: stop-irrigation
          description: "Stop zone irrigation"
          operations:
            - method: POST
              name: stop-irrigation
              description: "Stop active irrigation"
              call: "intellidash.stop-irrigation"
              with:
                zoneId: "rest.zoneId"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/equipment
          name: equipment
          description: "Golf course fleet equipment"
          operations:
            - method: GET
              name: list-fleet-equipment
              description: "List fleet equipment with health data"
              call: "intellidash.list-fleet-equipment"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/equipment/{equipmentId}
          name: equipment-item
          description: "Individual equipment details"
          operations:
            - method: GET
              name: get-fleet-equipment
              description: "Get equipment details and health"
              call: "intellidash.get-fleet-equipment"
              with:
                equipmentId: "rest.equipmentId"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/equipment/{equipmentId}/location
          name: equipment-location
          description: "Equipment GPS location"
          operations:
            - method: GET
              name: get-equipment-location
              description: "Get equipment current location"
              call: "intellidash.get-equipment-location"
              with:
                equipmentId: "rest.equipmentId"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/sensors
          name: sensors
          description: "Environmental and soil sensors"
          operations:
            - method: GET
              name: list-sensors
              description: "List all sensors with latest readings"
              call: "intellidash.list-sensors"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/sensors/{sensorId}/readings
          name: sensor-readings
          description: "Historical sensor data"
          operations:
            - method: GET
              name: get-sensor-readings
              description: "Get sensor historical readings"
              call: "intellidash.get-sensor-readings"
              with:
                sensorId: "rest.sensorId"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/reports/water-usage
          name: water-usage-report
          description: "Water usage reporting"
          operations:
            - method: GET
              name: get-water-usage-report
              description: "Get water usage report"
              call: "intellidash.get-water-usage-report"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/reports/equipment-health
          name: equipment-health-report
          description: "Equipment health reporting"
          operations:
            - method: GET
              name: get-equipment-health-report
              description: "Get equipment health report"
              call: "intellidash.get-equipment-health-report"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9091
      namespace: toro-golf-mcp
      transport: http
      description: "MCP server for AI-assisted golf course irrigation and fleet management."
      tools:
        - name: get-irrigation-status
          description: "Get the current status of the golf course irrigation system"
          hints:
            readOnly: true
            idempotent: true
          call: "intellidash.get-irrigation-status"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-irrigation-zones
          description: "List all golf course irrigation zones and their current state"
          hints:
            readOnly: true
            openWorld: true
          call: "intellidash.list-irrigation-zones"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-irrigation-zone
          description: "Get detailed information for a specific irrigation zone"
          hints:
            readOnly: true
            idempotent: true
          call: "intellidash.get-irrigation-zone"
          with:
            zoneId: "tools.zoneId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: start-zone-irrigation
          description: "Manually start irrigation for a specific zone with optional duration"
          hints:
            readOnly: false
            destructive: false
          call: "intellidash.start-irrigation"
          with:
            zoneId: "tools.zoneId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: stop-zone-irrigation
          description: "Stop active irrigation for a specific zone"
          hints:
            readOnly: false
            destructive: false
          call: "intellidash.stop-irrigation"
          with:
            zoneId: "tools.zoneId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-fleet-equipment
          description: "List all golf course fleet equipment with health and status data"
          hints:
            readOnly: true
            openWorld: true
          call: "intellidash.list-fleet-equipment"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-fleet-equipment
          description: "Get detailed health information for a specific piece of equipment"
          hints:
            readOnly: true
            idempotent: true
          call: "intellidash.get-fleet-equipment"
          with:
            equipmentId: "tools.equipmentId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-equipment-location
          description: "Get the current GPS location of a specific piece of equipment"
          hints:
            readOnly: true
            idempotent: true
          call: "intellidash.get-equipment-location"
          with:
            equipmentId: "tools.equipmentId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-sensors
          description: "List all environmental and soil moisture sensors with latest readings"
          hints:
            readOnly: true
            openWorld: true
          call: "intellidash.list-sensors"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-sensor-readings
          description: "Get historical readings for a sensor over a specified time range"
          hints:
            readOnly: true
            idempotent: true
          call: "intellidash.get-sensor-readings"
          with:
            sensorId: "tools.sensorId"
            startDate: "tools.startDate"
            endDate: "tools.endDate"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-water-usage-report
          description: "Get a water usage summary report for a date range to track irrigation efficiency"
          hints:
            readOnly: true
            idempotent: true
          call: "intellidash.get-water-usage-report"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-equipment-health-report
          description: "Get a fleet equipment health summary report showing maintenance status"
          hints:
            readOnly: true
            idempotent: true
          call: "intellidash.get-equipment-health-report"
          outputParameters:
            - type: object
              mapping: "$."