naftiko: 1.0.0-alpha2 info: label: OpenAQ — Cities description: 'OpenAQ — Cities. 2 operations. Lead operation: OpenAQ Get cities. Self-contained Naftiko capability covering one Openaq business surface.' tags: - Openaq - Cities created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: OPENAQ_API_KEY: OPENAQ_API_KEY capability: consumes: - type: http namespace: openaq-cities baseUri: '' description: OpenAQ — Cities business capability. Self-contained, no shared references. resources: - name: v1-cities path: /v1/cities operations: - name: citiesgetv1v1citiesget method: GET description: OpenAQ Get cities outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: string description: Change the number of results returned. e.g. limit=1000 will return up to 1000 results - name: page in: query type: string description: Paginate through results. e.g. page=1 will return first page of results - name: offset in: query type: string - name: sort in: query type: string description: Define sort order. e.g. ?sort=asc - name: order_by in: query type: string description: Order by a field e.g. ?order_by=city - name: country in: query type: string description: Limit results by a certain country using two letter country code. e.g. ?country=US or ?country=US&country=MX - name: v2-cities path: /v2/cities operations: - name: citiesgetv2citiesget method: GET description: OpenAQ Get cities outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: string description: Change the number of results returned. e.g. limit=1000 will return up to 1000 results - name: page in: query type: string description: Paginate through results. e.g. page=1 will return first page of results - name: offset in: query type: string - name: sort in: query type: string description: Define sort order. e.g. ?sort=asc - name: country_id in: query type: string description: Limit results by a certain country using two digit country ID. e.g. 13 - name: country in: query type: string description: Limit results by a certain country using two letter country code. e.g. ?country=US or ?country=US&country=MX - name: city in: query type: string description: Limit results by a certain city or cities. (e.g. ?city=Chicago or ?city=Chicago&city=Boston) - name: order_by in: query type: string description: Order by a field e.g. ?order_by=city - name: entity in: query type: string authentication: type: apikey key: X-API-Key value: '{{env.OPENAQ_API_KEY}}' placement: header exposes: - type: rest namespace: openaq-cities-rest port: 8080 description: REST adapter for OpenAQ — Cities. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/cities name: v1-cities description: REST surface for v1-cities. operations: - method: GET name: citiesgetv1v1citiesget description: OpenAQ Get cities call: openaq-cities.citiesgetv1v1citiesget with: limit: rest.limit page: rest.page offset: rest.offset sort: rest.sort order_by: rest.order_by country: rest.country outputParameters: - type: object mapping: $. - path: /v1/v2/cities name: v2-cities description: REST surface for v2-cities. operations: - method: GET name: citiesgetv2citiesget description: OpenAQ Get cities call: openaq-cities.citiesgetv2citiesget with: limit: rest.limit page: rest.page offset: rest.offset sort: rest.sort country_id: rest.country_id country: rest.country city: rest.city order_by: rest.order_by entity: rest.entity outputParameters: - type: object mapping: $. - type: mcp namespace: openaq-cities-mcp port: 9090 transport: http description: MCP adapter for OpenAQ — Cities. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: openaq-get-cities description: OpenAQ Get cities hints: readOnly: true destructive: false idempotent: true call: openaq-cities.citiesgetv1v1citiesget with: limit: tools.limit page: tools.page offset: tools.offset sort: tools.sort order_by: tools.order_by country: tools.country outputParameters: - type: object mapping: $. - name: openaq-get-cities-2 description: OpenAQ Get cities hints: readOnly: true destructive: false idempotent: true call: openaq-cities.citiesgetv2citiesget with: limit: tools.limit page: tools.page offset: tools.offset sort: tools.sort country_id: tools.country_id country: tools.country city: tools.city order_by: tools.order_by entity: tools.entity outputParameters: - type: object mapping: $.