Apache Airflow · Capability

Airflow API — Asset

Airflow API — Asset. 13 operations. Lead operation: Airflow Get Assets. Self-contained Naftiko capability covering one Airflow business surface.

Run with Naftiko AirflowAsset

What You Can Do

GET
Getassets — Airflow Get Assets
/v1/api/v2/assets
GET
Getassetaliases — Airflow Get Asset Aliases
/v1/api/v2/assets/aliases
GET
Getassetalias — Airflow Get Asset Alias
/v1/api/v2/assets/aliases/{asset-alias-id}
GET
Getassetevents — Airflow Get Asset Events
/v1/api/v2/assets/events
POST
Createassetevent — Airflow Create Asset Event
/v1/api/v2/assets/events
GET
Getasset — Airflow Get Asset
/v1/api/v2/assets/{asset-id}
POST
Materializeasset — Airflow Materialize Asset
/v1/api/v2/assets/{asset-id}/materialize
GET
Getassetqueuedevents — Airflow Get Asset Queued Events
/v1/api/v2/assets/{asset-id}/queuedevents
DELETE
Deleteassetqueuedevents — Airflow Delete Asset Queued Events
/v1/api/v2/assets/{asset-id}/queuedevents
GET
Getdagassetqueuedevents — Airflow Get Dag Asset Queued Events
/v1/api/v2/dags/{dag-id}/assets/queuedevents
DELETE
Deletedagassetqueuedevents — Airflow Delete Dag Asset Queued Events
/v1/api/v2/dags/{dag-id}/assets/queuedevents
GET
Getdagassetqueuedevent — Airflow Get Dag Asset Queued Event
/v1/api/v2/dags/{dag-id}/assets/{asset-id}/queuedevents
DELETE
Deletedagassetqueuedevent — Airflow Delete Dag Asset Queued Event
/v1/api/v2/dags/{dag-id}/assets/{asset-id}/queuedevents

MCP Tools

airflow-get-assets

Airflow Get Assets

read-only idempotent
airflow-get-asset-aliases

Airflow Get Asset Aliases

read-only idempotent
airflow-get-asset-alias

Airflow Get Asset Alias

read-only idempotent
airflow-get-asset-events

Airflow Get Asset Events

read-only idempotent
airflow-create-asset-event

Airflow Create Asset Event

airflow-get-asset

Airflow Get Asset

read-only idempotent
airflow-materialize-asset

Airflow Materialize Asset

airflow-get-asset-queued-events

Airflow Get Asset Queued Events

read-only idempotent
airflow-delete-asset-queued-events

Airflow Delete Asset Queued Events

idempotent
airflow-get-dag-asset-queued

Airflow Get Dag Asset Queued Events

read-only idempotent
airflow-delete-dag-asset-queued

Airflow Delete Dag Asset Queued Events

idempotent
airflow-get-dag-asset-queued-2

Airflow Get Dag Asset Queued Event

read-only idempotent
airflow-delete-dag-asset-queued-2

Airflow Delete Dag Asset Queued Event

idempotent

Capability Spec

airflow-asset.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Airflow API — Asset
  description: 'Airflow API — Asset. 13 operations. Lead operation: Airflow Get Assets. Self-contained Naftiko capability
    covering one Airflow business surface.'
  tags:
  - Airflow
  - Asset
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    AIRFLOW_API_KEY: AIRFLOW_API_KEY
capability:
  consumes:
  - type: http
    namespace: airflow-asset
    baseUri: ''
    description: Airflow API — Asset business capability. Self-contained, no shared references.
    resources:
    - name: api-v2-assets
      path: /api/v2/assets
      operations:
      - name: getassets
        method: GET
        description: Airflow Get Assets
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
        - name: offset
          in: query
          type: integer
        - name: 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: uri_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_ids
          in: query
          type: array
        - name: only_active
          in: query
          type: boolean
        - 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, name, uri, created_at, updated_at`'
    - name: api-v2-assets-aliases
      path: /api/v2/assets/aliases
      operations:
      - name: getassetaliases
        method: GET
        description: Airflow Get Asset Aliases
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
        - name: offset
          in: query
          type: integer
        - name: 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: order_by
          in: query
          type: array
          description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported
            attributes: `id, name`'
    - name: api-v2-assets-aliases-asset_alias_id
      path: /api/v2/assets/aliases/{asset_alias_id}
      operations:
      - name: getassetalias
        method: GET
        description: Airflow Get Asset Alias
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: asset_alias_id
          in: path
          type: integer
          required: true
    - name: api-v2-assets-events
      path: /api/v2/assets/events
      operations:
      - name: getassetevents
        method: GET
        description: Airflow Get Asset Events
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - 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: `source_task_id, source_dag_id, source_run'
        - name: asset_id
          in: query
          type: string
        - name: source_dag_id
          in: query
          type: string
        - name: source_task_id
          in: query
          type: string
        - name: source_run_id
          in: query
          type: string
        - name: source_map_index
          in: query
          type: string
        - name: 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: timestamp_gte
          in: query
          type: string
        - name: timestamp_gt
          in: query
          type: string
        - name: timestamp_lte
          in: query
          type: string
        - name: timestamp_lt
          in: query
          type: string
      - name: createassetevent
        method: POST
        description: Airflow Create Asset Event
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-v2-assets-asset_id
      path: /api/v2/assets/{asset_id}
      operations:
      - name: getasset
        method: GET
        description: Airflow Get Asset
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: asset_id
          in: path
          type: integer
          required: true
    - name: api-v2-assets-asset_id-materialize
      path: /api/v2/assets/{asset_id}/materialize
      operations:
      - name: materializeasset
        method: POST
        description: Airflow Materialize Asset
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: asset_id
          in: path
          type: integer
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-v2-assets-asset_id-queuedEvents
      path: /api/v2/assets/{asset_id}/queuedEvents
      operations:
      - name: getassetqueuedevents
        method: GET
        description: Airflow Get Asset Queued Events
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: asset_id
          in: path
          type: integer
          required: true
        - name: before
          in: query
          type: string
      - name: deleteassetqueuedevents
        method: DELETE
        description: Airflow Delete Asset Queued Events
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: asset_id
          in: path
          type: integer
          required: true
        - name: before
          in: query
          type: string
    - name: api-v2-dags-dag_id-assets-queuedEvents
      path: /api/v2/dags/{dag_id}/assets/queuedEvents
      operations:
      - name: getdagassetqueuedevents
        method: GET
        description: Airflow Get Dag Asset Queued Events
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: dag_id
          in: path
          type: string
          required: true
        - name: before
          in: query
          type: string
      - name: deletedagassetqueuedevents
        method: DELETE
        description: Airflow Delete Dag Asset Queued Events
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: dag_id
          in: path
          type: string
          required: true
        - name: before
          in: query
          type: string
    - name: api-v2-dags-dag_id-assets-asset_id-queuedEvents
      path: /api/v2/dags/{dag_id}/assets/{asset_id}/queuedEvents
      operations:
      - name: getdagassetqueuedevent
        method: GET
        description: Airflow Get Dag Asset Queued Event
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: dag_id
          in: path
          type: string
          required: true
        - name: asset_id
          in: path
          type: integer
          required: true
        - name: before
          in: query
          type: string
      - name: deletedagassetqueuedevent
        method: DELETE
        description: Airflow Delete Dag Asset Queued Event
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: dag_id
          in: path
          type: string
          required: true
        - name: asset_id
          in: path
          type: integer
          required: true
        - name: before
          in: query
          type: string
    authentication:
      type: bearer
      token: '{{env.AIRFLOW_API_KEY}}'
  exposes:
  - type: rest
    namespace: airflow-asset-rest
    port: 8080
    description: REST adapter for Airflow API — Asset. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/api/v2/assets
      name: api-v2-assets
      description: REST surface for api-v2-assets.
      operations:
      - method: GET
        name: getassets
        description: Airflow Get Assets
        call: airflow-asset.getassets
        with:
          limit: rest.limit
          offset: rest.offset
          name_pattern: rest.name_pattern
          uri_pattern: rest.uri_pattern
          dag_ids: rest.dag_ids
          only_active: rest.only_active
          order_by: rest.order_by
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/assets/aliases
      name: api-v2-assets-aliases
      description: REST surface for api-v2-assets-aliases.
      operations:
      - method: GET
        name: getassetaliases
        description: Airflow Get Asset Aliases
        call: airflow-asset.getassetaliases
        with:
          limit: rest.limit
          offset: rest.offset
          name_pattern: rest.name_pattern
          order_by: rest.order_by
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/assets/aliases/{asset-alias-id}
      name: api-v2-assets-aliases-asset-alias-id
      description: REST surface for api-v2-assets-aliases-asset_alias_id.
      operations:
      - method: GET
        name: getassetalias
        description: Airflow Get Asset Alias
        call: airflow-asset.getassetalias
        with:
          asset_alias_id: rest.asset_alias_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/assets/events
      name: api-v2-assets-events
      description: REST surface for api-v2-assets-events.
      operations:
      - method: GET
        name: getassetevents
        description: Airflow Get Asset Events
        call: airflow-asset.getassetevents
        with:
          limit: rest.limit
          offset: rest.offset
          order_by: rest.order_by
          asset_id: rest.asset_id
          source_dag_id: rest.source_dag_id
          source_task_id: rest.source_task_id
          source_run_id: rest.source_run_id
          source_map_index: rest.source_map_index
          name_pattern: rest.name_pattern
          timestamp_gte: rest.timestamp_gte
          timestamp_gt: rest.timestamp_gt
          timestamp_lte: rest.timestamp_lte
          timestamp_lt: rest.timestamp_lt
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createassetevent
        description: Airflow Create Asset Event
        call: airflow-asset.createassetevent
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/assets/{asset-id}
      name: api-v2-assets-asset-id
      description: REST surface for api-v2-assets-asset_id.
      operations:
      - method: GET
        name: getasset
        description: Airflow Get Asset
        call: airflow-asset.getasset
        with:
          asset_id: rest.asset_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/assets/{asset-id}/materialize
      name: api-v2-assets-asset-id-materialize
      description: REST surface for api-v2-assets-asset_id-materialize.
      operations:
      - method: POST
        name: materializeasset
        description: Airflow Materialize Asset
        call: airflow-asset.materializeasset
        with:
          asset_id: rest.asset_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/assets/{asset-id}/queuedevents
      name: api-v2-assets-asset-id-queuedevents
      description: REST surface for api-v2-assets-asset_id-queuedEvents.
      operations:
      - method: GET
        name: getassetqueuedevents
        description: Airflow Get Asset Queued Events
        call: airflow-asset.getassetqueuedevents
        with:
          asset_id: rest.asset_id
          before: rest.before
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteassetqueuedevents
        description: Airflow Delete Asset Queued Events
        call: airflow-asset.deleteassetqueuedevents
        with:
          asset_id: rest.asset_id
          before: rest.before
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/dags/{dag-id}/assets/queuedevents
      name: api-v2-dags-dag-id-assets-queuedevents
      description: REST surface for api-v2-dags-dag_id-assets-queuedEvents.
      operations:
      - method: GET
        name: getdagassetqueuedevents
        description: Airflow Get Dag Asset Queued Events
        call: airflow-asset.getdagassetqueuedevents
        with:
          dag_id: rest.dag_id
          before: rest.before
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletedagassetqueuedevents
        description: Airflow Delete Dag Asset Queued Events
        call: airflow-asset.deletedagassetqueuedevents
        with:
          dag_id: rest.dag_id
          before: rest.before
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/dags/{dag-id}/assets/{asset-id}/queuedevents
      name: api-v2-dags-dag-id-assets-asset-id-queuedevents
      description: REST surface for api-v2-dags-dag_id-assets-asset_id-queuedEvents.
      operations:
      - method: GET
        name: getdagassetqueuedevent
        description: Airflow Get Dag Asset Queued Event
        call: airflow-asset.getdagassetqueuedevent
        with:
          dag_id: rest.dag_id
          asset_id: rest.asset_id
          before: rest.before
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletedagassetqueuedevent
        description: Airflow Delete Dag Asset Queued Event
        call: airflow-asset.deletedagassetqueuedevent
        with:
          dag_id: rest.dag_id
          asset_id: rest.asset_id
          before: rest.before
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: airflow-asset-mcp
    port: 9090
    transport: http
    description: MCP adapter for Airflow API — Asset. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: airflow-get-assets
      description: Airflow Get Assets
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: airflow-asset.getassets
      with:
        limit: tools.limit
        offset: tools.offset
        name_pattern: tools.name_pattern
        uri_pattern: tools.uri_pattern
        dag_ids: tools.dag_ids
        only_active: tools.only_active
        order_by: tools.order_by
      outputParameters:
      - type: object
        mapping: $.
    - name: airflow-get-asset-aliases
      description: Airflow Get Asset Aliases
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: airflow-asset.getassetaliases
      with:
        limit: tools.limit
        offset: tools.offset
        name_pattern: tools.name_pattern
        order_by: tools.order_by
      outputParameters:
      - type: object
        mapping: $.
    - name: airflow-get-asset-alias
      description: Airflow Get Asset Alias
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: airflow-asset.getassetalias
      with:
        asset_alias_id: tools.asset_alias_id
      outputParameters:
      - type: object
        mapping: $.
    - name: airflow-get-asset-events
      description: Airflow Get Asset Events
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: airflow-asset.getassetevents
      with:
        limit: tools.limit
        offset: tools.offset
        order_by: tools.order_by
        asset_id: tools.asset_id
        source_dag_id: tools.source_dag_id
        source_task_id: tools.source_task_id
        source_run_id: tools.source_run_id
        source_map_index: tools.source_map_index
        name_pattern: tools.name_pattern
        timestamp_gte: tools.timestamp_gte
        timestamp_gt: tools.timestamp_gt
        timestamp_lte: tools.timestamp_lte
        timestamp_lt: tools.timestamp_lt
      outputParameters:
      - type: object
        mapping: $.
    - name: airflow-create-asset-event
      description: Airflow Create Asset Event
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: airflow-asset.createassetevent
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: airflow-get-asset
      description: Airflow Get Asset
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: airflow-asset.getasset
      with:
        asset_id: tools.asset_id
      outputParameters:
      - type: object
        mapping: $.
    - name: airflow-materialize-asset
      description: Airflow Materialize Asset
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: airflow-asset.materializeasset
      with:
        asset_id: tools.asset_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: airflow-get-asset-queued-events
      description: Airflow Get Asset Queued Events
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: airflow-asset.getassetqueuedevents
      with:
        asset_id: tools.asset_id
        before: tools.before
      outputParameters:
      - type: object
        mapping: $.
    - name: airflow-delete-asset-queued-events
      description: Airflow Delete Asset Queued Events
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: airflow-asset.deleteassetqueuedevents
      with:
        asset_id: tools.asset_id
        before: tools.before
      outputParameters:
      - type: object
        mapping: $.
    - name: airflow-get-dag-asset-queued
      description: Airflow Get Dag Asset Queued Events
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: airflow-asset.getdagassetqueuedevents
      with:
        dag_id: tools.dag_id
        before: tools.before
      outputParameters:
      - type: object
        mapping: $.
    - name: airflow-delete-dag-asset-queued
      description: Airflow Delete Dag Asset Queued Events
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: airflow-asset.deletedagassetqueuedevents
      with:
        dag_id: tools.dag_id
        before: tools.before
      outputParameters:
      - type: object
        mapping: $.
    - name: airflow-get-dag-asset-queued-2
      description: Airflow Get Dag Asset Queued Event
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: airflow-asset.getdagassetqueuedevent
      with:
        dag_id: tools.dag_id
        asset_id: tools.asset_id
        before: tools.before
      outputParameters:
      - type: object
        mapping: $.
    - name: airflow-delete-dag-asset-queued-2
      description: Airflow Delete Dag Asset Queued Event
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: airflow-asset.deletedagassetqueuedevent
      with:
        dag_id: tools.dag_id
        asset_id: tools.asset_id
        before: tools.before
      outputParameters:
      - type: object
        mapping: $.