naftiko: 1.0.0-alpha2 info: label: OpenAQ — Sources description: 'OpenAQ — Sources. 3 operations. Lead operation: OpenAQ Sources. Self-contained Naftiko capability covering one Openaq business surface.' tags: - Openaq - Sources created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: OPENAQ_API_KEY: OPENAQ_API_KEY capability: consumes: - type: http namespace: openaq-sources baseUri: '' description: OpenAQ — Sources business capability. Self-contained, no shared references. resources: - name: v1-sources path: /v1/sources operations: - name: sourcesv1getv1sourcesget method: GET description: OpenAQ Sources outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: string - name: page in: query type: string - name: offset in: query type: string - name: sort in: query type: string - name: name in: query type: string - name: order_by in: query type: string - name: v2-sources path: /v2/sources operations: - name: sourcesgetv2sourcesget method: GET description: OpenAQ Sources 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: source_name in: query type: string - name: source_id in: query type: string - name: source_slug in: query type: string - name: order_by in: query type: string description: Field by which to order the results e.g. ?order_by=sourceName or ?order_by=firstUpdated - name: v2-sources-readme-slug path: /v2/sources/readme/{slug} operations: - name: readmegetv2sourcesreadmeslugget method: GET description: OpenAQ Source Readme outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: slug in: path type: string required: true authentication: type: apikey key: X-API-Key value: '{{env.OPENAQ_API_KEY}}' placement: header exposes: - type: rest namespace: openaq-sources-rest port: 8080 description: REST adapter for OpenAQ — Sources. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/sources name: v1-sources description: REST surface for v1-sources. operations: - method: GET name: sourcesv1getv1sourcesget description: OpenAQ Sources call: openaq-sources.sourcesv1getv1sourcesget with: limit: rest.limit page: rest.page offset: rest.offset sort: rest.sort name: rest.name order_by: rest.order_by outputParameters: - type: object mapping: $. - path: /v1/v2/sources name: v2-sources description: REST surface for v2-sources. operations: - method: GET name: sourcesgetv2sourcesget description: OpenAQ Sources call: openaq-sources.sourcesgetv2sourcesget with: limit: rest.limit page: rest.page offset: rest.offset sort: rest.sort source_name: rest.source_name source_id: rest.source_id source_slug: rest.source_slug order_by: rest.order_by outputParameters: - type: object mapping: $. - path: /v1/v2/sources/readme/{slug} name: v2-sources-readme-slug description: REST surface for v2-sources-readme-slug. operations: - method: GET name: readmegetv2sourcesreadmeslugget description: OpenAQ Source Readme call: openaq-sources.readmegetv2sourcesreadmeslugget with: slug: rest.slug outputParameters: - type: object mapping: $. - type: mcp namespace: openaq-sources-mcp port: 9090 transport: http description: MCP adapter for OpenAQ — Sources. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: openaq-sources description: OpenAQ Sources hints: readOnly: true destructive: false idempotent: true call: openaq-sources.sourcesv1getv1sourcesget with: limit: tools.limit page: tools.page offset: tools.offset sort: tools.sort name: tools.name order_by: tools.order_by outputParameters: - type: object mapping: $. - name: openaq-sources-2 description: OpenAQ Sources hints: readOnly: true destructive: false idempotent: true call: openaq-sources.sourcesgetv2sourcesget with: limit: tools.limit page: tools.page offset: tools.offset sort: tools.sort source_name: tools.source_name source_id: tools.source_id source_slug: tools.source_slug order_by: tools.order_by outputParameters: - type: object mapping: $. - name: openaq-source-readme description: OpenAQ Source Readme hints: readOnly: true destructive: false idempotent: true call: openaq-sources.readmegetv2sourcesreadmeslugget with: slug: tools.slug outputParameters: - type: object mapping: $.