naftiko: 1.0.0-alpha2 info: label: Solcast API — Forecast Data description: 'Solcast API — Forecast Data. 5 operations. Lead operation: Get Forecast Advanced PV Power. Self-contained Naftiko capability covering one Solcast business surface.' tags: - Solcast - Forecast Data created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SOLCAST_API_KEY: SOLCAST_API_KEY capability: consumes: - type: http namespace: solcast-forecast-data baseUri: https://api.solcast.com.au description: Solcast API — Forecast Data business capability. Self-contained, no shared references. resources: - name: data-forecast-advanced_pv_power path: /data/forecast/advanced_pv_power operations: - name: getforecastadvancedpvpower method: GET description: Get Forecast Advanced PV Power outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: resource_id in: query type: string description: Unique resource identifier for a registered Solcast PV power site. required: true - name: hours in: query type: integer description: Number of forecast hours to retrieve (up to 336). - name: period in: query type: string description: Time period between data points in ISO 8601 duration format. - name: format in: query type: string description: Response format. - name: data-forecast-radiation_and_weather path: /data/forecast/radiation_and_weather operations: - name: getforecastradiationandweather method: GET description: Get Forecast Radiation and Weather outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: latitude in: query type: number description: Latitude in decimal degrees, between -90 and 90 (north positive). required: true - name: longitude in: query type: number description: Longitude in decimal degrees, between -180 and 180 (east positive). required: true - name: output_parameters in: query type: string description: Comma-separated list of output parameters to return (e.g., ghi,dni,dhi, air_temp,wind_speed_10m,cloud_opacity,clearsky_ghi). required: true - name: hours in: query type: integer description: Number of forecast hours to retrieve (up to 336 for 14 days). - name: period in: query type: string description: Time period between data points in ISO 8601 duration format. - name: format in: query type: string description: Response format. - name: data-forecast-rooftop_pv_power path: /data/forecast/rooftop_pv_power operations: - name: getforecastrooftoppvpower method: GET description: Get Forecast Rooftop PV Power outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: latitude in: query type: number description: Latitude in decimal degrees, between -90 and 90 (north positive). required: true - name: longitude in: query type: number description: Longitude in decimal degrees, between -180 and 180 (east positive). required: true - name: capacity in: query type: number description: System capacity in kilowatts. - name: tilt in: query type: number description: Panel tilt angle in degrees from horizontal. - name: azimuth in: query type: number description: Panel azimuth in degrees. - name: output_parameters in: query type: string description: Comma-separated list of output parameters. required: true - name: hours in: query type: integer description: Number of forecast hours to retrieve (up to 336). - name: period in: query type: string description: Time period between data points in ISO 8601 duration format. - name: format in: query type: string description: Response format. - name: data-forecast-soiling-hsu path: /data/forecast/soiling/hsu operations: - name: getforecastsoilinghsu method: GET description: Get Forecast Soiling (HSU Model) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: latitude in: query type: number description: Latitude in decimal degrees, between -90 and 90 (north positive). required: true - name: longitude in: query type: number description: Longitude in decimal degrees, between -180 and 180 (east positive). required: true - name: depo_veloc_pm10 in: query type: number description: Deposition velocity for PM10 particles (m/s). - name: initial_soiling in: query type: number description: Initial soiling fraction (0.0 = clean, 1.0 = fully soiled). - name: format in: query type: string description: Response format. - name: data-forecast-soiling-kimber path: /data/forecast/soiling/kimber operations: - name: getforecastsoilingkimber method: GET description: Get Forecast Soiling (Kimber Model) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: latitude in: query type: number description: Latitude in decimal degrees, between -90 and 90 (north positive). required: true - name: longitude in: query type: number description: Longitude in decimal degrees, between -180 and 180 (east positive). required: true - name: depo_veloc_pm10 in: query type: number description: Deposition velocity for PM10 particles (m/s). - name: initial_soiling in: query type: number description: Initial soiling fraction (0.0 = clean, 1.0 = fully soiled). - name: format in: query type: string description: Response format. authentication: type: bearer token: '{{env.SOLCAST_API_KEY}}' exposes: - type: rest namespace: solcast-forecast-data-rest port: 8080 description: REST adapter for Solcast API — Forecast Data. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/data/forecast/advanced-pv-power name: data-forecast-advanced-pv-power description: REST surface for data-forecast-advanced_pv_power. operations: - method: GET name: getforecastadvancedpvpower description: Get Forecast Advanced PV Power call: solcast-forecast-data.getforecastadvancedpvpower with: resource_id: rest.resource_id hours: rest.hours period: rest.period format: rest.format outputParameters: - type: object mapping: $. - path: /v1/data/forecast/radiation-and-weather name: data-forecast-radiation-and-weather description: REST surface for data-forecast-radiation_and_weather. operations: - method: GET name: getforecastradiationandweather description: Get Forecast Radiation and Weather call: solcast-forecast-data.getforecastradiationandweather with: latitude: rest.latitude longitude: rest.longitude output_parameters: rest.output_parameters hours: rest.hours period: rest.period format: rest.format outputParameters: - type: object mapping: $. - path: /v1/data/forecast/rooftop-pv-power name: data-forecast-rooftop-pv-power description: REST surface for data-forecast-rooftop_pv_power. operations: - method: GET name: getforecastrooftoppvpower description: Get Forecast Rooftop PV Power call: solcast-forecast-data.getforecastrooftoppvpower with: latitude: rest.latitude longitude: rest.longitude capacity: rest.capacity tilt: rest.tilt azimuth: rest.azimuth output_parameters: rest.output_parameters hours: rest.hours period: rest.period format: rest.format outputParameters: - type: object mapping: $. - path: /v1/data/forecast/soiling/hsu name: data-forecast-soiling-hsu description: REST surface for data-forecast-soiling-hsu. operations: - method: GET name: getforecastsoilinghsu description: Get Forecast Soiling (HSU Model) call: solcast-forecast-data.getforecastsoilinghsu with: latitude: rest.latitude longitude: rest.longitude depo_veloc_pm10: rest.depo_veloc_pm10 initial_soiling: rest.initial_soiling format: rest.format outputParameters: - type: object mapping: $. - path: /v1/data/forecast/soiling/kimber name: data-forecast-soiling-kimber description: REST surface for data-forecast-soiling-kimber. operations: - method: GET name: getforecastsoilingkimber description: Get Forecast Soiling (Kimber Model) call: solcast-forecast-data.getforecastsoilingkimber with: latitude: rest.latitude longitude: rest.longitude depo_veloc_pm10: rest.depo_veloc_pm10 initial_soiling: rest.initial_soiling format: rest.format outputParameters: - type: object mapping: $. - type: mcp namespace: solcast-forecast-data-mcp port: 9090 transport: http description: MCP adapter for Solcast API — Forecast Data. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-forecast-advanced-pv-power description: Get Forecast Advanced PV Power hints: readOnly: true destructive: false idempotent: true call: solcast-forecast-data.getforecastadvancedpvpower with: resource_id: tools.resource_id hours: tools.hours period: tools.period format: tools.format outputParameters: - type: object mapping: $. - name: get-forecast-radiation-and-weather description: Get Forecast Radiation and Weather hints: readOnly: true destructive: false idempotent: true call: solcast-forecast-data.getforecastradiationandweather with: latitude: tools.latitude longitude: tools.longitude output_parameters: tools.output_parameters hours: tools.hours period: tools.period format: tools.format outputParameters: - type: object mapping: $. - name: get-forecast-rooftop-pv-power description: Get Forecast Rooftop PV Power hints: readOnly: true destructive: false idempotent: true call: solcast-forecast-data.getforecastrooftoppvpower with: latitude: tools.latitude longitude: tools.longitude capacity: tools.capacity tilt: tools.tilt azimuth: tools.azimuth output_parameters: tools.output_parameters hours: tools.hours period: tools.period format: tools.format outputParameters: - type: object mapping: $. - name: get-forecast-soiling-hsu-model description: Get Forecast Soiling (HSU Model) hints: readOnly: true destructive: false idempotent: true call: solcast-forecast-data.getforecastsoilinghsu with: latitude: tools.latitude longitude: tools.longitude depo_veloc_pm10: tools.depo_veloc_pm10 initial_soiling: tools.initial_soiling format: tools.format outputParameters: - type: object mapping: $. - name: get-forecast-soiling-kimber-model description: Get Forecast Soiling (Kimber Model) hints: readOnly: true destructive: false idempotent: true call: solcast-forecast-data.getforecastsoilingkimber with: latitude: tools.latitude longitude: tools.longitude depo_veloc_pm10: tools.depo_veloc_pm10 initial_soiling: tools.initial_soiling format: tools.format outputParameters: - type: object mapping: $.