naftiko: 1.0.0-alpha2 info: label: OpenWeatherMap Forecast description: Naftiko capability covering OpenWeather 5-day/3-hour forecast plus pro hourly, daily, and climatic forecasts. tags: - OpenWeather - Forecast created: '2026-05-29' modified: '2026-05-29' binds: - namespace: env keys: OPENWEATHER_API_KEY: OPENWEATHER_API_KEY capability: consumes: - type: http namespace: openweathermap-forecast baseUri: https://api.openweathermap.org/data/2.5 description: OpenWeather 5-day/3-hour forecast. resources: - name: forecast path: /forecast operations: - name: getforecastfiveday method: GET description: Five-day three-hour forecast for a coordinate. 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: cnt in: query type: integer - name: units in: query type: string - name: lang in: query type: string - name: appid in: query type: string required: true authentication: type: apikey key: appid value: '{{env.OPENWEATHER_API_KEY}}' placement: query - type: http namespace: openweathermap-forecast-pro baseUri: https://pro.openweathermap.org/data/2.5 description: OpenWeather pro forecast tier (hourly, daily, climatic). resources: - name: forecast-hourly path: /forecast/hourly operations: - name: getforecasthourly method: GET description: Four-day hourly 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: cnt in: query type: integer - name: units in: query type: string - name: lang in: query type: string - name: appid in: query type: string required: true - name: forecast-daily path: /forecast/daily operations: - name: getforecastdaily method: GET description: Sixteen-day daily 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: cnt in: query type: integer - name: units in: query type: string - name: lang in: query type: string - name: appid in: query type: string required: true - name: forecast-climate path: /forecast/climate operations: - name: getforecastclimate method: GET description: Thirty-day climatic 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: cnt in: query type: integer - name: units in: query type: string - name: lang in: query type: string - name: appid in: query type: string required: true authentication: type: apikey key: appid value: '{{env.OPENWEATHER_API_KEY}}' placement: query exposes: - type: rest namespace: openweathermap-forecast-rest port: 8080 description: REST surface for OpenWeather forecast suite. resources: - path: /v1/forecast name: forecast description: Five-day three-hour forecast. operations: - method: GET name: getforecastfiveday description: Five-day three-hour forecast. call: openweathermap-forecast.getforecastfiveday with: lat: rest.lat lon: rest.lon cnt: rest.cnt units: rest.units lang: rest.lang appid: rest.appid outputParameters: - type: object mapping: $. - path: /v1/forecast/hourly name: forecast-hourly description: Four-day hourly forecast. operations: - method: GET name: getforecasthourly description: Four-day hourly forecast. call: openweathermap-forecast-pro.getforecasthourly with: lat: rest.lat lon: rest.lon cnt: rest.cnt units: rest.units lang: rest.lang appid: rest.appid outputParameters: - type: object mapping: $. - path: /v1/forecast/daily name: forecast-daily description: Sixteen-day daily forecast. operations: - method: GET name: getforecastdaily description: Sixteen-day daily forecast. call: openweathermap-forecast-pro.getforecastdaily with: lat: rest.lat lon: rest.lon cnt: rest.cnt units: rest.units lang: rest.lang appid: rest.appid outputParameters: - type: object mapping: $. - path: /v1/forecast/climate name: forecast-climate description: Thirty-day climatic forecast. operations: - method: GET name: getforecastclimate description: Thirty-day climatic forecast. call: openweathermap-forecast-pro.getforecastclimate with: lat: rest.lat lon: rest.lon cnt: rest.cnt units: rest.units lang: rest.lang appid: rest.appid outputParameters: - type: object mapping: $. - type: mcp namespace: openweathermap-forecast-mcp port: 9090 transport: http description: MCP surface for OpenWeather forecasts. tools: - name: get-forecast-five-day description: Five-day three-hour forecast. hints: readOnly: true destructive: false idempotent: true call: openweathermap-forecast.getforecastfiveday with: lat: tools.lat lon: tools.lon cnt: tools.cnt units: tools.units lang: tools.lang appid: tools.appid outputParameters: - type: object mapping: $. - name: get-forecast-hourly description: Four-day hourly forecast. hints: readOnly: true destructive: false idempotent: true call: openweathermap-forecast-pro.getforecasthourly with: lat: tools.lat lon: tools.lon cnt: tools.cnt units: tools.units lang: tools.lang appid: tools.appid outputParameters: - type: object mapping: $. - name: get-forecast-daily description: Sixteen-day daily forecast. hints: readOnly: true destructive: false idempotent: true call: openweathermap-forecast-pro.getforecastdaily with: lat: tools.lat lon: tools.lon cnt: tools.cnt units: tools.units lang: tools.lang appid: tools.appid outputParameters: - type: object mapping: $. - name: get-forecast-climate description: Thirty-day climatic forecast. hints: readOnly: true destructive: false idempotent: true call: openweathermap-forecast-pro.getforecastclimate with: lat: tools.lat lon: tools.lon cnt: tools.cnt units: tools.units lang: tools.lang appid: tools.appid outputParameters: - type: object mapping: $.