naftiko: 1.0.0-alpha2 info: label: Airflow API — XCom description: 'Airflow API — XCom. 5 operations. Lead operation: Airflow Get Xcom Entries. Self-contained Naftiko capability covering one Airflow business surface.' tags: - Airflow - XCom created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: AIRFLOW_API_KEY: AIRFLOW_API_KEY capability: consumes: - type: http namespace: airflow-xcom baseUri: '' description: Airflow API — XCom business capability. Self-contained, no shared references. resources: - name: api-v2-dags-dag_id-dagRuns-dag_run_id-taskInstances-task_id-xcomEntries path: /api/v2/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries operations: - name: getxcomentries method: GET description: Airflow Get Xcom Entries outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dag_id in: path type: string required: true - name: dag_run_id in: path type: string required: true - name: task_id in: path type: string required: true - name: xcom_key in: query type: string - name: map_index in: query type: string - name: limit in: query type: integer - name: offset in: query type: integer - name: xcom_key_pattern in: query type: string description: 'SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic (e.g. `dag1 | dag2`). Regular expressions are **not** ' - name: dag_display_name_pattern in: query type: string description: 'SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic (e.g. `dag1 | dag2`). Regular expressions are **not** ' - name: run_id_pattern in: query type: string description: 'SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic (e.g. `dag1 | dag2`). Regular expressions are **not** ' - name: task_id_pattern in: query type: string description: 'SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic (e.g. `dag1 | dag2`). Regular expressions are **not** ' - name: map_index_filter in: query type: string - name: logical_date_gte in: query type: string - name: logical_date_gt in: query type: string - name: logical_date_lte in: query type: string - name: logical_date_lt in: query type: string - name: run_after_gte in: query type: string - name: run_after_gt in: query type: string - name: run_after_lte in: query type: string - name: run_after_lt in: query type: string - name: createxcomentry method: POST description: Airflow Create Xcom Entry outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dag_id in: path type: string required: true - name: task_id in: path type: string required: true - name: dag_run_id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-dags-dag_id-dagRuns-dag_run_id-taskInstances-task_id-xcomEntries-xcom_key path: /api/v2/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries/{xcom_key} operations: - name: getxcomentry method: GET description: Airflow Get Xcom Entry outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dag_id in: path type: string required: true - name: task_id in: path type: string required: true - name: dag_run_id in: path type: string required: true - name: xcom_key in: path type: string required: true - name: map_index in: query type: integer - name: deserialize in: query type: boolean - name: stringify in: query type: boolean - name: updatexcomentry method: PATCH description: Airflow Update Xcom Entry outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dag_id in: path type: string required: true - name: task_id in: path type: string required: true - name: dag_run_id in: path type: string required: true - name: xcom_key in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletexcomentry method: DELETE description: Airflow Delete Xcom Entry outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: dag_id in: path type: string required: true - name: task_id in: path type: string required: true - name: dag_run_id in: path type: string required: true - name: xcom_key in: path type: string required: true - name: map_index in: query type: integer authentication: type: bearer token: '{{env.AIRFLOW_API_KEY}}' exposes: - type: rest namespace: airflow-xcom-rest port: 8080 description: REST adapter for Airflow API — XCom. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v2/dags/{dag-id}/dagruns/{dag-run-id}/taskinstances/{task-id}/xcomentries name: api-v2-dags-dag-id-dagruns-dag-run-id-taskinstances-task-id-xcomentries description: REST surface for api-v2-dags-dag_id-dagRuns-dag_run_id-taskInstances-task_id-xcomEntries. operations: - method: GET name: getxcomentries description: Airflow Get Xcom Entries call: airflow-xcom.getxcomentries with: dag_id: rest.dag_id dag_run_id: rest.dag_run_id task_id: rest.task_id xcom_key: rest.xcom_key map_index: rest.map_index limit: rest.limit offset: rest.offset xcom_key_pattern: rest.xcom_key_pattern dag_display_name_pattern: rest.dag_display_name_pattern run_id_pattern: rest.run_id_pattern task_id_pattern: rest.task_id_pattern map_index_filter: rest.map_index_filter logical_date_gte: rest.logical_date_gte logical_date_gt: rest.logical_date_gt logical_date_lte: rest.logical_date_lte logical_date_lt: rest.logical_date_lt run_after_gte: rest.run_after_gte run_after_gt: rest.run_after_gt run_after_lte: rest.run_after_lte run_after_lt: rest.run_after_lt outputParameters: - type: object mapping: $. - method: POST name: createxcomentry description: Airflow Create Xcom Entry call: airflow-xcom.createxcomentry with: dag_id: rest.dag_id task_id: rest.task_id dag_run_id: rest.dag_run_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/dags/{dag-id}/dagruns/{dag-run-id}/taskinstances/{task-id}/xcomentries/{xcom-key} name: api-v2-dags-dag-id-dagruns-dag-run-id-taskinstances-task-id-xcomentries-xcom-key description: REST surface for api-v2-dags-dag_id-dagRuns-dag_run_id-taskInstances-task_id-xcomEntries-xcom_key. operations: - method: GET name: getxcomentry description: Airflow Get Xcom Entry call: airflow-xcom.getxcomentry with: dag_id: rest.dag_id task_id: rest.task_id dag_run_id: rest.dag_run_id xcom_key: rest.xcom_key map_index: rest.map_index deserialize: rest.deserialize stringify: rest.stringify outputParameters: - type: object mapping: $. - method: PATCH name: updatexcomentry description: Airflow Update Xcom Entry call: airflow-xcom.updatexcomentry with: dag_id: rest.dag_id task_id: rest.task_id dag_run_id: rest.dag_run_id xcom_key: rest.xcom_key body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletexcomentry description: Airflow Delete Xcom Entry call: airflow-xcom.deletexcomentry with: dag_id: rest.dag_id task_id: rest.task_id dag_run_id: rest.dag_run_id xcom_key: rest.xcom_key map_index: rest.map_index outputParameters: - type: object mapping: $. - type: mcp namespace: airflow-xcom-mcp port: 9090 transport: http description: MCP adapter for Airflow API — XCom. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: airflow-get-xcom-entries description: Airflow Get Xcom Entries hints: readOnly: true destructive: false idempotent: true call: airflow-xcom.getxcomentries with: dag_id: tools.dag_id dag_run_id: tools.dag_run_id task_id: tools.task_id xcom_key: tools.xcom_key map_index: tools.map_index limit: tools.limit offset: tools.offset xcom_key_pattern: tools.xcom_key_pattern dag_display_name_pattern: tools.dag_display_name_pattern run_id_pattern: tools.run_id_pattern task_id_pattern: tools.task_id_pattern map_index_filter: tools.map_index_filter logical_date_gte: tools.logical_date_gte logical_date_gt: tools.logical_date_gt logical_date_lte: tools.logical_date_lte logical_date_lt: tools.logical_date_lt run_after_gte: tools.run_after_gte run_after_gt: tools.run_after_gt run_after_lte: tools.run_after_lte run_after_lt: tools.run_after_lt outputParameters: - type: object mapping: $. - name: airflow-create-xcom-entry description: Airflow Create Xcom Entry hints: readOnly: false destructive: false idempotent: false call: airflow-xcom.createxcomentry with: dag_id: tools.dag_id task_id: tools.task_id dag_run_id: tools.dag_run_id body: tools.body outputParameters: - type: object mapping: $. - name: airflow-get-xcom-entry description: Airflow Get Xcom Entry hints: readOnly: true destructive: false idempotent: true call: airflow-xcom.getxcomentry with: dag_id: tools.dag_id task_id: tools.task_id dag_run_id: tools.dag_run_id xcom_key: tools.xcom_key map_index: tools.map_index deserialize: tools.deserialize stringify: tools.stringify outputParameters: - type: object mapping: $. - name: airflow-update-xcom-entry description: Airflow Update Xcom Entry hints: readOnly: false destructive: false idempotent: true call: airflow-xcom.updatexcomentry with: dag_id: tools.dag_id task_id: tools.task_id dag_run_id: tools.dag_run_id xcom_key: tools.xcom_key body: tools.body outputParameters: - type: object mapping: $. - name: airflow-delete-xcom-entry description: Airflow Delete Xcom Entry hints: readOnly: false destructive: true idempotent: true call: airflow-xcom.deletexcomentry with: dag_id: tools.dag_id task_id: tools.task_id dag_run_id: tools.dag_run_id xcom_key: tools.xcom_key map_index: tools.map_index outputParameters: - type: object mapping: $.