AgStack Foundation · Capability

OpenAgri Weather service

OpenAgri Weather service. 13 operations. Lead operation: Get Flight Forecast For All Uavs. Self-contained Naftiko capability covering one Agstack business surface.

Run with Naftiko AgstackOpenAgri Weather service

What You Can Do

GET
Getflightforecastforalluavsapidataflightforecast5get — Get Flight Forecast For All Uavs
/v1/api/data/flight-forecast5
GET
Getflightforecastforuavapidataflightforecast5uavmodelget — Get Flight Forecast For Uav
/v1/api/data/flight-forecast5/{uavmodel}
GET
Getweatherforecast5daysapidataforecast5get — Get Weather Forecast5Days
/v1/api/data/forecast5
GET
Getsprayforecastapidatasprayforecastget — Get Spray Forecast
/v1/api/data/spray-forecast
GET
Getthiapidatathiget — Get Thi
/v1/api/data/thi
GET
Getweatherapidataweatherget — Get Weather
/v1/api/data/weather
GET
Getflightforecastforalluavsldapilinkeddataflightforecast5get — Get Flight Forecast For All Uavs Ld
/v1/api/linkeddata/flight-forecast5
GET
Getflightforecastforuavldapilinkeddataflightforecast5uavmodelget — Get Flight Forecast For Uav Ld
/v1/api/linkeddata/flight-forecast5/{uavmodel}
GET
Getweatherforecast5daysldapilinkeddataforecast5get — Get Weather Forecast5Days Ld
/v1/api/linkeddata/forecast5
GET
Getsprayforecastldapilinkeddatasprayforecastget — Get Spray Forecast Ld
/v1/api/linkeddata/spray-forecast
GET
Getthildapilinkeddatathiget — Get Thi Ld
/v1/api/linkeddata/thi
GET
Getpayloadauthtestget — Get Payload
/v1/auth/test
POST
Tokenauthtokenpost — Token
/v1/auth/token

MCP Tools

get-flight-forecast-all-uavs

Get Flight Forecast For All Uavs

read-only idempotent
get-flight-forecast-uav

Get Flight Forecast For Uav

read-only idempotent
get-weather-forecast5days

Get Weather Forecast5Days

read-only idempotent
get-spray-forecast

Get Spray Forecast

read-only idempotent
get-thi

Get Thi

read-only idempotent
get-weather

Get Weather

read-only idempotent
get-flight-forecast-all-uavs-2

Get Flight Forecast For All Uavs Ld

read-only idempotent
get-flight-forecast-uav-ld

Get Flight Forecast For Uav Ld

read-only idempotent
get-weather-forecast5days-ld

Get Weather Forecast5Days Ld

read-only idempotent
get-spray-forecast-ld

Get Spray Forecast Ld

read-only idempotent
get-thi-ld

Get Thi Ld

read-only idempotent
get-payload

Get Payload

read-only idempotent
token

Token

Capability Spec

openagri-weather-service.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: OpenAgri Weather service
  description: 'OpenAgri Weather service. 13 operations. Lead operation: Get Flight Forecast For All Uavs. Self-contained
    Naftiko capability covering one Agstack business surface.'
  tags:
  - Agstack
  - OpenAgri Weather service
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    AGSTACK_API_KEY: AGSTACK_API_KEY
capability:
  consumes:
  - type: http
    namespace: openagri-weather-service
    baseUri: ''
    description: OpenAgri Weather service business capability. Self-contained, no shared references.
    resources:
    - name: api-data-flight_forecast5
      path: /api/data/flight_forecast5
      operations:
      - name: getflightforecastforalluavsapidataflightforecast5get
        method: GET
        description: Get Flight Forecast For All Uavs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
        - name: uavmodels
          in: query
          type: string
        - name: status_filter
          in: query
          type: string
    - name: api-data-flight_forecast5-uavmodel
      path: /api/data/flight_forecast5/{uavmodel}
      operations:
      - name: getflightforecastforuavapidataflightforecast5uavmodelget
        method: GET
        description: Get Flight Forecast For Uav
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uavmodel
          in: path
          type: string
          required: true
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
    - name: api-data-forecast5
      path: /api/data/forecast5
      operations:
      - name: getweatherforecast5daysapidataforecast5get
        method: GET
        description: Get Weather Forecast5Days
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
    - name: api-data-spray_forecast
      path: /api/data/spray_forecast
      operations:
      - name: getsprayforecastapidatasprayforecastget
        method: GET
        description: Get Spray Forecast
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
    - name: api-data-thi
      path: /api/data/thi
      operations:
      - name: getthiapidatathiget
        method: GET
        description: Get Thi
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
    - name: api-data-weather
      path: /api/data/weather
      operations:
      - name: getweatherapidataweatherget
        method: GET
        description: Get Weather
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
    - name: api-linkeddata-flight_forecast5
      path: /api/linkeddata/flight_forecast5
      operations:
      - name: getflightforecastforalluavsldapilinkeddataflightforecast5get
        method: GET
        description: Get Flight Forecast For All Uavs Ld
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
        - name: uavmodels
          in: query
          type: string
        - name: status_filter
          in: query
          type: string
    - name: api-linkeddata-flight_forecast5-uavmodel
      path: /api/linkeddata/flight_forecast5/{uavmodel}
      operations:
      - name: getflightforecastforuavldapilinkeddataflightforecast5uavmodelget
        method: GET
        description: Get Flight Forecast For Uav Ld
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uavmodel
          in: path
          type: string
          required: true
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
    - name: api-linkeddata-forecast5
      path: /api/linkeddata/forecast5
      operations:
      - name: getweatherforecast5daysldapilinkeddataforecast5get
        method: GET
        description: Get Weather Forecast5Days Ld
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
    - name: api-linkeddata-spray_forecast
      path: /api/linkeddata/spray_forecast
      operations:
      - name: getsprayforecastldapilinkeddatasprayforecastget
        method: GET
        description: Get Spray Forecast Ld
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
    - name: api-linkeddata-thi
      path: /api/linkeddata/thi
      operations:
      - name: getthildapilinkeddatathiget
        method: GET
        description: Get Thi Ld
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          required: true
        - name: lon
          in: query
          type: number
          required: true
    - name: auth-test
      path: /auth/test
      operations:
      - name: getpayloadauthtestget
        method: GET
        description: Get Payload
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: auth-token
      path: /auth/token
      operations:
      - name: tokenauthtokenpost
        method: POST
        description: Token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.AGSTACK_API_KEY}}'
  exposes:
  - type: rest
    namespace: openagri-weather-service-rest
    port: 8080
    description: REST adapter for OpenAgri Weather service. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/api/data/flight-forecast5
      name: api-data-flight-forecast5
      description: REST surface for api-data-flight_forecast5.
      operations:
      - method: GET
        name: getflightforecastforalluavsapidataflightforecast5get
        description: Get Flight Forecast For All Uavs
        call: openagri-weather-service.getflightforecastforalluavsapidataflightforecast5get
        with:
          lat: rest.lat
          lon: rest.lon
          uavmodels: rest.uavmodels
          status_filter: rest.status_filter
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/data/flight-forecast5/{uavmodel}
      name: api-data-flight-forecast5-uavmodel
      description: REST surface for api-data-flight_forecast5-uavmodel.
      operations:
      - method: GET
        name: getflightforecastforuavapidataflightforecast5uavmodelget
        description: Get Flight Forecast For Uav
        call: openagri-weather-service.getflightforecastforuavapidataflightforecast5uavmodelget
        with:
          uavmodel: rest.uavmodel
          lat: rest.lat
          lon: rest.lon
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/data/forecast5
      name: api-data-forecast5
      description: REST surface for api-data-forecast5.
      operations:
      - method: GET
        name: getweatherforecast5daysapidataforecast5get
        description: Get Weather Forecast5Days
        call: openagri-weather-service.getweatherforecast5daysapidataforecast5get
        with:
          lat: rest.lat
          lon: rest.lon
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/data/spray-forecast
      name: api-data-spray-forecast
      description: REST surface for api-data-spray_forecast.
      operations:
      - method: GET
        name: getsprayforecastapidatasprayforecastget
        description: Get Spray Forecast
        call: openagri-weather-service.getsprayforecastapidatasprayforecastget
        with:
          lat: rest.lat
          lon: rest.lon
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/data/thi
      name: api-data-thi
      description: REST surface for api-data-thi.
      operations:
      - method: GET
        name: getthiapidatathiget
        description: Get Thi
        call: openagri-weather-service.getthiapidatathiget
        with:
          lat: rest.lat
          lon: rest.lon
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/data/weather
      name: api-data-weather
      description: REST surface for api-data-weather.
      operations:
      - method: GET
        name: getweatherapidataweatherget
        description: Get Weather
        call: openagri-weather-service.getweatherapidataweatherget
        with:
          lat: rest.lat
          lon: rest.lon
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/linkeddata/flight-forecast5
      name: api-linkeddata-flight-forecast5
      description: REST surface for api-linkeddata-flight_forecast5.
      operations:
      - method: GET
        name: getflightforecastforalluavsldapilinkeddataflightforecast5get
        description: Get Flight Forecast For All Uavs Ld
        call: openagri-weather-service.getflightforecastforalluavsldapilinkeddataflightforecast5get
        with:
          lat: rest.lat
          lon: rest.lon
          uavmodels: rest.uavmodels
          status_filter: rest.status_filter
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/linkeddata/flight-forecast5/{uavmodel}
      name: api-linkeddata-flight-forecast5-uavmodel
      description: REST surface for api-linkeddata-flight_forecast5-uavmodel.
      operations:
      - method: GET
        name: getflightforecastforuavldapilinkeddataflightforecast5uavmodelget
        description: Get Flight Forecast For Uav Ld
        call: openagri-weather-service.getflightforecastforuavldapilinkeddataflightforecast5uavmodelget
        with:
          uavmodel: rest.uavmodel
          lat: rest.lat
          lon: rest.lon
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/linkeddata/forecast5
      name: api-linkeddata-forecast5
      description: REST surface for api-linkeddata-forecast5.
      operations:
      - method: GET
        name: getweatherforecast5daysldapilinkeddataforecast5get
        description: Get Weather Forecast5Days Ld
        call: openagri-weather-service.getweatherforecast5daysldapilinkeddataforecast5get
        with:
          lat: rest.lat
          lon: rest.lon
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/linkeddata/spray-forecast
      name: api-linkeddata-spray-forecast
      description: REST surface for api-linkeddata-spray_forecast.
      operations:
      - method: GET
        name: getsprayforecastldapilinkeddatasprayforecastget
        description: Get Spray Forecast Ld
        call: openagri-weather-service.getsprayforecastldapilinkeddatasprayforecastget
        with:
          lat: rest.lat
          lon: rest.lon
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/linkeddata/thi
      name: api-linkeddata-thi
      description: REST surface for api-linkeddata-thi.
      operations:
      - method: GET
        name: getthildapilinkeddatathiget
        description: Get Thi Ld
        call: openagri-weather-service.getthildapilinkeddatathiget
        with:
          lat: rest.lat
          lon: rest.lon
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/auth/test
      name: auth-test
      description: REST surface for auth-test.
      operations:
      - method: GET
        name: getpayloadauthtestget
        description: Get Payload
        call: openagri-weather-service.getpayloadauthtestget
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/auth/token
      name: auth-token
      description: REST surface for auth-token.
      operations:
      - method: POST
        name: tokenauthtokenpost
        description: Token
        call: openagri-weather-service.tokenauthtokenpost
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: openagri-weather-service-mcp
    port: 9090
    transport: http
    description: MCP adapter for OpenAgri Weather service. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: get-flight-forecast-all-uavs
      description: Get Flight Forecast For All Uavs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openagri-weather-service.getflightforecastforalluavsapidataflightforecast5get
      with:
        lat: tools.lat
        lon: tools.lon
        uavmodels: tools.uavmodels
        status_filter: tools.status_filter
      outputParameters:
      - type: object
        mapping: $.
    - name: get-flight-forecast-uav
      description: Get Flight Forecast For Uav
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openagri-weather-service.getflightforecastforuavapidataflightforecast5uavmodelget
      with:
        uavmodel: tools.uavmodel
        lat: tools.lat
        lon: tools.lon
      outputParameters:
      - type: object
        mapping: $.
    - name: get-weather-forecast5days
      description: Get Weather Forecast5Days
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openagri-weather-service.getweatherforecast5daysapidataforecast5get
      with:
        lat: tools.lat
        lon: tools.lon
      outputParameters:
      - type: object
        mapping: $.
    - name: get-spray-forecast
      description: Get Spray Forecast
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openagri-weather-service.getsprayforecastapidatasprayforecastget
      with:
        lat: tools.lat
        lon: tools.lon
      outputParameters:
      - type: object
        mapping: $.
    - name: get-thi
      description: Get Thi
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openagri-weather-service.getthiapidatathiget
      with:
        lat: tools.lat
        lon: tools.lon
      outputParameters:
      - type: object
        mapping: $.
    - name: get-weather
      description: Get Weather
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openagri-weather-service.getweatherapidataweatherget
      with:
        lat: tools.lat
        lon: tools.lon
      outputParameters:
      - type: object
        mapping: $.
    - name: get-flight-forecast-all-uavs-2
      description: Get Flight Forecast For All Uavs Ld
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openagri-weather-service.getflightforecastforalluavsldapilinkeddataflightforecast5get
      with:
        lat: tools.lat
        lon: tools.lon
        uavmodels: tools.uavmodels
        status_filter: tools.status_filter
      outputParameters:
      - type: object
        mapping: $.
    - name: get-flight-forecast-uav-ld
      description: Get Flight Forecast For Uav Ld
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openagri-weather-service.getflightforecastforuavldapilinkeddataflightforecast5uavmodelget
      with:
        uavmodel: tools.uavmodel
        lat: tools.lat
        lon: tools.lon
      outputParameters:
      - type: object
        mapping: $.
    - name: get-weather-forecast5days-ld
      description: Get Weather Forecast5Days Ld
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openagri-weather-service.getweatherforecast5daysldapilinkeddataforecast5get
      with:
        lat: tools.lat
        lon: tools.lon
      outputParameters:
      - type: object
        mapping: $.
    - name: get-spray-forecast-ld
      description: Get Spray Forecast Ld
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openagri-weather-service.getsprayforecastldapilinkeddatasprayforecastget
      with:
        lat: tools.lat
        lon: tools.lon
      outputParameters:
      - type: object
        mapping: $.
    - name: get-thi-ld
      description: Get Thi Ld
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openagri-weather-service.getthildapilinkeddatathiget
      with:
        lat: tools.lat
        lon: tools.lon
      outputParameters:
      - type: object
        mapping: $.
    - name: get-payload
      description: Get Payload
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openagri-weather-service.getpayloadauthtestget
      outputParameters:
      - type: object
        mapping: $.
    - name: token
      description: Token
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: openagri-weather-service.tokenauthtokenpost
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.