naftiko: 1.0.0-alpha2 info: label: Rainbow.AI Weather Intelligence description: Unified weather intelligence capability combining Rainbow.AI's Nowcast API for minute-by-minute precipitation forecasts and the Tiles API for map visualization. Used by operations teams, logistics platforms, outdoor event planners, and any application requiring precise, real-time precipitation awareness. tags: - Weather - Nowcast - Precipitation - Tiles - Mapping - Geospatial - Forecasting created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: RAINBOW_AI_API_KEY: RAINBOW_AI_API_KEY capability: consumes: - type: http namespace: nowcast baseUri: https://api.rainbow.ai/v1 description: Rainbow.AI Nowcast API for hyperlocal precipitation forecasting authentication: type: apikey key: Ocp-Apim-Subscription-Key value: '{{RAINBOW_AI_API_KEY}}' placement: header resources: - name: nowcast path: /weather/nowcast description: Minute-by-minute precipitation forecasts operations: - name: get-nowcast method: GET description: Get precipitation nowcast for a location inputParameters: - name: lat in: query type: number required: true description: Latitude (-90 to 90) - name: lon in: query type: number required: true description: Longitude (-180 to 180) - name: timezone in: query type: string required: false description: IANA timezone identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: radar path: /weather/radar description: Real-time radar data operations: - name: get-radar-data method: GET description: Get real-time radar data for a location inputParameters: - name: lat in: query type: number required: true description: Latitude (-90 to 90) - name: lon in: query type: number required: true description: Longitude (-180 to 180) outputRawFormat: json outputParameters: - name: result type: object value: $. - type: http namespace: tiles baseUri: https://api.rainbow.ai/v1 description: Rainbow.AI Tiles API for weather map visualization authentication: type: apikey key: Ocp-Apim-Subscription-Key value: '{{RAINBOW_AI_API_KEY}}' placement: header resources: - name: map-tiles path: /map/tile/{z}/{x}/{y} description: XYZ weather map tiles operations: - name: get-map-tile method: GET description: Get a 256x256 precipitation map tile inputParameters: - name: z in: path type: integer required: true description: Zoom level (0-18) - name: x in: path type: integer required: true description: Tile X coordinate - name: y in: path type: integer required: true description: Tile Y coordinate - name: timestamp in: query type: string required: false description: ISO 8601 forecast timestamp - name: layer in: query type: string required: false description: Layer type (precipitation or radar) outputRawFormat: binary - name: map-snapshot path: /map/snapshot description: Static precipitation map images operations: - name: get-map-snapshot method: GET description: Get a static precipitation map snapshot for a bounding box inputParameters: - name: bbox in: query type: string required: true description: Bounding box as minLon,minLat,maxLon,maxLat - name: width in: query type: integer required: false description: Output image width in pixels - name: height in: query type: integer required: false description: Output image height in pixels - name: timestamp in: query type: string required: false description: ISO 8601 forecast timestamp outputRawFormat: binary - name: map-timestamps path: /map/timestamps description: Available tile timestamps operations: - name: get-available-timestamps method: GET description: Get list of available tile timestamps for animation outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: weather-intelligence-api description: Unified REST API for hyperlocal precipitation intelligence. resources: - path: /v1/nowcast name: nowcast description: Minute-by-minute precipitation forecasts for any location operations: - method: GET name: get-nowcast description: Get precipitation forecast for the next 4 hours call: nowcast.get-nowcast with: lat: rest.lat lon: rest.lon timezone: rest.timezone outputParameters: - type: object mapping: $. - path: /v1/radar name: radar description: Real-time radar observations operations: - method: GET name: get-radar-data description: Get current radar reflectivity data call: nowcast.get-radar-data with: lat: rest.lat lon: rest.lon outputParameters: - type: object mapping: $. - path: /v1/map/tiles/{z}/{x}/{y} name: map-tiles description: XYZ precipitation map tiles for visualization operations: - method: GET name: get-map-tile description: Get weather map tile for a specific zoom and coordinate call: tiles.get-map-tile with: z: rest.z x: rest.x y: rest.y timestamp: rest.timestamp layer: rest.layer outputParameters: - type: object mapping: $. - path: /v1/map/snapshots name: map-snapshots description: Static precipitation map images for a bounding box operations: - method: GET name: get-map-snapshot description: Get static precipitation map image call: tiles.get-map-snapshot with: bbox: rest.bbox width: rest.width height: rest.height timestamp: rest.timestamp outputParameters: - type: object mapping: $. - path: /v1/map/timestamps name: map-timestamps description: Available tile timestamps for animation operations: - method: GET name: get-available-timestamps description: Get timestamps for animated weather map call: tiles.get-available-timestamps outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: weather-intelligence-mcp transport: http description: MCP server for AI-assisted hyperlocal precipitation intelligence. tools: - name: get-precipitation-nowcast description: Get minute-by-minute precipitation forecast for any global location for the next 4 hours at 1 km resolution. hints: readOnly: true openWorld: true call: nowcast.get-nowcast with: lat: tools.lat lon: tools.lon timezone: tools.timezone outputParameters: - type: object mapping: $. - name: get-radar-data description: Get real-time weather radar reflectivity data showing current precipitation intensity and type for a location. hints: readOnly: true openWorld: true call: nowcast.get-radar-data with: lat: tools.lat lon: tools.lon outputParameters: - type: object mapping: $. - name: get-weather-map-tile description: Retrieve a precipitation map tile at a specific zoom level and XYZ tile coordinates for embedding in map visualizations. hints: readOnly: true openWorld: true call: tiles.get-map-tile with: z: tools.z x: tools.x y: tools.y timestamp: tools.timestamp layer: tools.layer outputParameters: - type: object mapping: $. - name: get-precipitation-map-snapshot description: Get a static precipitation map image for a geographic bounding box, useful for report generation or preview thumbnails. hints: readOnly: true openWorld: true call: tiles.get-map-snapshot with: bbox: tools.bbox width: tools.width height: tools.height timestamp: tools.timestamp outputParameters: - type: object mapping: $. - name: get-available-tile-timestamps description: Get the list of available weather tile timestamps for building animated precipitation visualizations. hints: readOnly: true openWorld: false call: tiles.get-available-timestamps outputParameters: - type: object mapping: $.