naftiko: 1.0.0-alpha2 info: label: Tomorrow.io Weather API — Locations description: 'Locations surface of the Tomorrow.io Weather API. 7 operations. Lead operation: Tomorrow.io List Locations. Self-contained Naftiko capability covering one Tomorrow.io business surface.' tags: - Tomorrow.io - Weather - Locations created: '2026-05-30' modified: '2026-05-30' binds: - namespace: env keys: TOMORROW_API_KEY: TOMORROW_API_KEY capability: consumes: - type: http namespace: tomorrow-locations baseUri: https://api.tomorrow.io/v4 description: Tomorrow.io Weather API — Locations business capability. Self-contained, no shared references. authentication: type: apikey key: apikey value: '{{env.TOMORROW_API_KEY}}' placement: query resources: - name: locations path: /locations operations: - name: listLocations method: GET description: Tomorrow.io List Locations inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createLocation method: POST description: Tomorrow.io Create Location inputParameters: - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: locations-location-id path: /locations/{locationId} operations: - name: getLocation method: GET description: Tomorrow.io Get Location inputParameters: - name: locationId in: path type: string required: true description: Tomorrow.io location identifier. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateLocation method: PUT description: Tomorrow.io Update Location inputParameters: - name: locationId in: path type: string required: true description: Tomorrow.io location identifier. - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deleteLocation method: DELETE description: Tomorrow.io Delete Location inputParameters: - name: locationId in: path type: string required: true description: Tomorrow.io location identifier. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: locations-tags-add path: /locations/tags/add operations: - name: addLocationTags method: POST description: Tomorrow.io Add Location Tags inputParameters: - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: locations-tags-remove path: /locations/tags/remove operations: - name: removeLocationTags method: POST description: Tomorrow.io Remove Location Tags inputParameters: - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: tomorrow-locations-rest port: 8080 description: REST adapter for Tomorrow.io Weather API — Locations. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/locations name: locations description: REST surface for locations. operations: - method: GET name: listLocations description: Tomorrow.io List Locations call: tomorrow-locations.listLocations with: {} outputParameters: - type: object mapping: $. - method: POST name: createLocation description: Tomorrow.io Create Location call: tomorrow-locations.createLocation with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/locations/{locationId} name: locations-location-id description: REST surface for locations-location-id. operations: - method: GET name: getLocation description: Tomorrow.io Get Location call: tomorrow-locations.getLocation with: locationId: rest.locationId outputParameters: - type: object mapping: $. - method: PUT name: updateLocation description: Tomorrow.io Update Location call: tomorrow-locations.updateLocation with: locationId: rest.locationId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteLocation description: Tomorrow.io Delete Location call: tomorrow-locations.deleteLocation with: locationId: rest.locationId outputParameters: - type: object mapping: $. - path: /v1/locations/tags/add name: locations-tags-add description: REST surface for locations-tags-add. operations: - method: POST name: addLocationTags description: Tomorrow.io Add Location Tags call: tomorrow-locations.addLocationTags with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/locations/tags/remove name: locations-tags-remove description: REST surface for locations-tags-remove. operations: - method: POST name: removeLocationTags description: Tomorrow.io Remove Location Tags call: tomorrow-locations.removeLocationTags with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: tomorrow-locations-mcp port: 9090 transport: http description: MCP adapter for Tomorrow.io Weather API — Locations. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: io-list-locations description: Tomorrow.io List Locations hints: readOnly: true destructive: false idempotent: true call: tomorrow-locations.listLocations with: {} outputParameters: - type: object mapping: $. - name: io-create-location description: Tomorrow.io Create Location hints: readOnly: false destructive: false idempotent: false call: tomorrow-locations.createLocation with: body: tools.body outputParameters: - type: object mapping: $. - name: io-get-location description: Tomorrow.io Get Location hints: readOnly: true destructive: false idempotent: true call: tomorrow-locations.getLocation with: locationId: tools.locationId outputParameters: - type: object mapping: $. - name: io-update-location description: Tomorrow.io Update Location hints: readOnly: false destructive: false idempotent: true call: tomorrow-locations.updateLocation with: locationId: tools.locationId body: tools.body outputParameters: - type: object mapping: $. - name: io-delete-location description: Tomorrow.io Delete Location hints: readOnly: false destructive: true idempotent: true call: tomorrow-locations.deleteLocation with: locationId: tools.locationId outputParameters: - type: object mapping: $. - name: io-add-location-tags description: Tomorrow.io Add Location Tags hints: readOnly: false destructive: false idempotent: false call: tomorrow-locations.addLocationTags with: body: tools.body outputParameters: - type: object mapping: $. - name: io-remove-location-tags description: Tomorrow.io Remove Location Tags hints: readOnly: false destructive: false idempotent: false call: tomorrow-locations.removeLocationTags with: body: tools.body outputParameters: - type: object mapping: $.