naftiko: 1.0.0-alpha2 info: label: Airflow API — Job description: 'Airflow API — Job. 1 operations. Lead operation: Airflow Get Jobs. Self-contained Naftiko capability covering one Airflow business surface.' tags: - Airflow - Job created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: AIRFLOW_API_KEY: AIRFLOW_API_KEY capability: consumes: - type: http namespace: airflow-job baseUri: '' description: Airflow API — Job business capability. Self-contained, no shared references. resources: - name: api-v2-jobs path: /api/v2/jobs operations: - name: getjobs method: GET description: Airflow Get Jobs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: is_alive in: query type: string - name: start_date_gte in: query type: string - name: start_date_gt in: query type: string - name: start_date_lte in: query type: string - name: start_date_lt in: query type: string - name: end_date_gte in: query type: string - name: end_date_gt in: query type: string - name: end_date_lte in: query type: string - name: end_date_lt in: query type: string - name: limit in: query type: integer - name: offset in: query type: integer - name: order_by in: query type: array description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported attributes: `id, dag_id, state, job_type, start_date, ' - name: job_state in: query type: string - name: job_type in: query type: string - name: hostname in: query type: string - name: executor_class in: query type: string authentication: type: bearer token: '{{env.AIRFLOW_API_KEY}}' exposes: - type: rest namespace: airflow-job-rest port: 8080 description: REST adapter for Airflow API — Job. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v2/jobs name: api-v2-jobs description: REST surface for api-v2-jobs. operations: - method: GET name: getjobs description: Airflow Get Jobs call: airflow-job.getjobs with: is_alive: rest.is_alive start_date_gte: rest.start_date_gte start_date_gt: rest.start_date_gt start_date_lte: rest.start_date_lte start_date_lt: rest.start_date_lt end_date_gte: rest.end_date_gte end_date_gt: rest.end_date_gt end_date_lte: rest.end_date_lte end_date_lt: rest.end_date_lt limit: rest.limit offset: rest.offset order_by: rest.order_by job_state: rest.job_state job_type: rest.job_type hostname: rest.hostname executor_class: rest.executor_class outputParameters: - type: object mapping: $. - type: mcp namespace: airflow-job-mcp port: 9090 transport: http description: MCP adapter for Airflow API — Job. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: airflow-get-jobs description: Airflow Get Jobs hints: readOnly: true destructive: false idempotent: true call: airflow-job.getjobs with: is_alive: tools.is_alive start_date_gte: tools.start_date_gte start_date_gt: tools.start_date_gt start_date_lte: tools.start_date_lte start_date_lt: tools.start_date_lt end_date_gte: tools.end_date_gte end_date_gt: tools.end_date_gt end_date_lte: tools.end_date_lte end_date_lt: tools.end_date_lt limit: tools.limit offset: tools.offset order_by: tools.order_by job_state: tools.job_state job_type: tools.job_type hostname: tools.hostname executor_class: tools.executor_class outputParameters: - type: object mapping: $.