Apache Airflow · Capability
Airflow API — DAG
Airflow API — DAG. 9 operations. Lead operation: Airflow Get Dag Tags. Self-contained Naftiko capability covering one Airflow business surface.
What You Can Do
GET
Getdagtags
— Airflow Get Dag Tags
/v1/api/v2/dagtags
GET
Getdags
— Airflow Get Dags
/v1/api/v2/dags
PATCH
Patchdags
— Airflow Patch Dags
/v1/api/v2/dags
GET
Getdag
— Airflow Get Dag
/v1/api/v2/dags/{dag-id}
PATCH
Patchdag
— Airflow Patch Dag
/v1/api/v2/dags/{dag-id}
DELETE
Deletedag
— Airflow Delete Dag
/v1/api/v2/dags/{dag-id}
GET
Getdagdetails
— Airflow Get Dag Details
/v1/api/v2/dags/{dag-id}/details
POST
Favoritedag
— Airflow Favorite Dag
/v1/api/v2/dags/{dag-id}/favorite
POST
Unfavoritedag
— Airflow Unfavorite Dag
/v1/api/v2/dags/{dag-id}/unfavorite
MCP Tools
airflow-get-dag-tags
Airflow Get Dag Tags
read-only
idempotent
airflow-get-dags
Airflow Get Dags
read-only
idempotent
airflow-patch-dags
Airflow Patch Dags
idempotent
airflow-get-dag
Airflow Get Dag
read-only
idempotent
airflow-patch-dag
Airflow Patch Dag
idempotent
airflow-delete-dag
Airflow Delete Dag
idempotent
airflow-get-dag-details
Airflow Get Dag Details
read-only
idempotent
airflow-favorite-dag
Airflow Favorite Dag
airflow-unfavorite-dag
Airflow Unfavorite Dag
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Airflow API — DAG
description: 'Airflow API — DAG. 9 operations. Lead operation: Airflow Get Dag Tags. Self-contained Naftiko capability covering
one Airflow business surface.'
tags:
- Airflow
- DAG
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
AIRFLOW_API_KEY: AIRFLOW_API_KEY
capability:
consumes:
- type: http
namespace: airflow-dag
baseUri: ''
description: Airflow API — DAG business capability. Self-contained, no shared references.
resources:
- name: api-v2-dagTags
path: /api/v2/dagTags
operations:
- name: getdagtags
method: GET
description: Airflow Get Dag Tags
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: `name`'
- name: tag_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: api-v2-dags
path: /api/v2/dags
operations:
- name: getdags
method: GET
description: Airflow Get Dags
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: limit
in: query
type: integer
- name: offset
in: query
type: integer
- name: tags
in: query
type: array
- name: tags_match_mode
in: query
type: string
- name: owners
in: query
type: array
- name: dag_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: 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: exclude_stale
in: query
type: boolean
- name: paused
in: query
type: string
- name: has_import_errors
in: query
type: string
description: Filter Dags by having import errors. Only Dags that have been successfully loaded before will be returned.
- name: last_dag_run_state
in: query
type: string
- name: bundle_name
in: query
type: string
- name: bundle_version
in: query
type: string
- name: has_asset_schedule
in: query
type: string
description: Filter Dags with asset-based scheduling
- name: asset_dependency
in: query
type: string
description: Filter Dags by asset dependency (name or URI)
- name: dag_run_start_date_gte
in: query
type: string
- name: dag_run_start_date_gt
in: query
type: string
- name: dag_run_start_date_lte
in: query
type: string
- name: dag_run_start_date_lt
in: query
type: string
- name: dag_run_end_date_gte
in: query
type: string
- name: dag_run_end_date_gt
in: query
type: string
- name: dag_run_end_date_lte
in: query
type: string
- name: dag_run_end_date_lt
in: query
type: string
- name: dag_run_state
in: query
type: array
- name: order_by
in: query
type: array
description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported
attributes: `dag_id, dag_display_name, next_dagrun, st'
- name: is_favorite
in: query
type: string
- name: timetable_type
in: query
type: array
- name: patchdags
method: PATCH
description: Airflow Patch Dags
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: update_mask
in: query
type: string
- name: limit
in: query
type: integer
- name: offset
in: query
type: integer
- name: tags
in: query
type: array
- name: tags_match_mode
in: query
type: string
- name: owners
in: query
type: array
- name: dag_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: exclude_stale
in: query
type: boolean
- name: paused
in: query
type: string
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: api-v2-dags-dag_id
path: /api/v2/dags/{dag_id}
operations:
- name: getdag
method: GET
description: Airflow Get Dag
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: dag_id
in: path
type: string
required: true
- name: patchdag
method: PATCH
description: Airflow Patch Dag
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: dag_id
in: path
type: string
required: true
- name: update_mask
in: query
type: string
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deletedag
method: DELETE
description: Airflow Delete Dag
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: dag_id
in: path
type: string
required: true
- name: api-v2-dags-dag_id-details
path: /api/v2/dags/{dag_id}/details
operations:
- name: getdagdetails
method: GET
description: Airflow Get Dag Details
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: dag_id
in: path
type: string
required: true
- name: api-v2-dags-dag_id-favorite
path: /api/v2/dags/{dag_id}/favorite
operations:
- name: favoritedag
method: POST
description: Airflow Favorite Dag
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: dag_id
in: path
type: string
required: true
- name: api-v2-dags-dag_id-unfavorite
path: /api/v2/dags/{dag_id}/unfavorite
operations:
- name: unfavoritedag
method: POST
description: Airflow Unfavorite Dag
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: dag_id
in: path
type: string
required: true
authentication:
type: bearer
token: '{{env.AIRFLOW_API_KEY}}'
exposes:
- type: rest
namespace: airflow-dag-rest
port: 8080
description: REST adapter for Airflow API — DAG. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/api/v2/dagtags
name: api-v2-dagtags
description: REST surface for api-v2-dagTags.
operations:
- method: GET
name: getdagtags
description: Airflow Get Dag Tags
call: airflow-dag.getdagtags
with:
limit: rest.limit
offset: rest.offset
order_by: rest.order_by
tag_name_pattern: rest.tag_name_pattern
outputParameters:
- type: object
mapping: $.
- path: /v1/api/v2/dags
name: api-v2-dags
description: REST surface for api-v2-dags.
operations:
- method: GET
name: getdags
description: Airflow Get Dags
call: airflow-dag.getdags
with:
limit: rest.limit
offset: rest.offset
tags: rest.tags
tags_match_mode: rest.tags_match_mode
owners: rest.owners
dag_id_pattern: rest.dag_id_pattern
dag_display_name_pattern: rest.dag_display_name_pattern
exclude_stale: rest.exclude_stale
paused: rest.paused
has_import_errors: rest.has_import_errors
last_dag_run_state: rest.last_dag_run_state
bundle_name: rest.bundle_name
bundle_version: rest.bundle_version
has_asset_schedule: rest.has_asset_schedule
asset_dependency: rest.asset_dependency
dag_run_start_date_gte: rest.dag_run_start_date_gte
dag_run_start_date_gt: rest.dag_run_start_date_gt
dag_run_start_date_lte: rest.dag_run_start_date_lte
dag_run_start_date_lt: rest.dag_run_start_date_lt
dag_run_end_date_gte: rest.dag_run_end_date_gte
dag_run_end_date_gt: rest.dag_run_end_date_gt
dag_run_end_date_lte: rest.dag_run_end_date_lte
dag_run_end_date_lt: rest.dag_run_end_date_lt
dag_run_state: rest.dag_run_state
order_by: rest.order_by
is_favorite: rest.is_favorite
timetable_type: rest.timetable_type
outputParameters:
- type: object
mapping: $.
- method: PATCH
name: patchdags
description: Airflow Patch Dags
call: airflow-dag.patchdags
with:
update_mask: rest.update_mask
limit: rest.limit
offset: rest.offset
tags: rest.tags
tags_match_mode: rest.tags_match_mode
owners: rest.owners
dag_id_pattern: rest.dag_id_pattern
exclude_stale: rest.exclude_stale
paused: rest.paused
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/v2/dags/{dag-id}
name: api-v2-dags-dag-id
description: REST surface for api-v2-dags-dag_id.
operations:
- method: GET
name: getdag
description: Airflow Get Dag
call: airflow-dag.getdag
with:
dag_id: rest.dag_id
outputParameters:
- type: object
mapping: $.
- method: PATCH
name: patchdag
description: Airflow Patch Dag
call: airflow-dag.patchdag
with:
dag_id: rest.dag_id
update_mask: rest.update_mask
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deletedag
description: Airflow Delete Dag
call: airflow-dag.deletedag
with:
dag_id: rest.dag_id
outputParameters:
- type: object
mapping: $.
- path: /v1/api/v2/dags/{dag-id}/details
name: api-v2-dags-dag-id-details
description: REST surface for api-v2-dags-dag_id-details.
operations:
- method: GET
name: getdagdetails
description: Airflow Get Dag Details
call: airflow-dag.getdagdetails
with:
dag_id: rest.dag_id
outputParameters:
- type: object
mapping: $.
- path: /v1/api/v2/dags/{dag-id}/favorite
name: api-v2-dags-dag-id-favorite
description: REST surface for api-v2-dags-dag_id-favorite.
operations:
- method: POST
name: favoritedag
description: Airflow Favorite Dag
call: airflow-dag.favoritedag
with:
dag_id: rest.dag_id
outputParameters:
- type: object
mapping: $.
- path: /v1/api/v2/dags/{dag-id}/unfavorite
name: api-v2-dags-dag-id-unfavorite
description: REST surface for api-v2-dags-dag_id-unfavorite.
operations:
- method: POST
name: unfavoritedag
description: Airflow Unfavorite Dag
call: airflow-dag.unfavoritedag
with:
dag_id: rest.dag_id
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: airflow-dag-mcp
port: 9090
transport: http
description: MCP adapter for Airflow API — DAG. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: airflow-get-dag-tags
description: Airflow Get Dag Tags
hints:
readOnly: true
destructive: false
idempotent: true
call: airflow-dag.getdagtags
with:
limit: tools.limit
offset: tools.offset
order_by: tools.order_by
tag_name_pattern: tools.tag_name_pattern
outputParameters:
- type: object
mapping: $.
- name: airflow-get-dags
description: Airflow Get Dags
hints:
readOnly: true
destructive: false
idempotent: true
call: airflow-dag.getdags
with:
limit: tools.limit
offset: tools.offset
tags: tools.tags
tags_match_mode: tools.tags_match_mode
owners: tools.owners
dag_id_pattern: tools.dag_id_pattern
dag_display_name_pattern: tools.dag_display_name_pattern
exclude_stale: tools.exclude_stale
paused: tools.paused
has_import_errors: tools.has_import_errors
last_dag_run_state: tools.last_dag_run_state
bundle_name: tools.bundle_name
bundle_version: tools.bundle_version
has_asset_schedule: tools.has_asset_schedule
asset_dependency: tools.asset_dependency
dag_run_start_date_gte: tools.dag_run_start_date_gte
dag_run_start_date_gt: tools.dag_run_start_date_gt
dag_run_start_date_lte: tools.dag_run_start_date_lte
dag_run_start_date_lt: tools.dag_run_start_date_lt
dag_run_end_date_gte: tools.dag_run_end_date_gte
dag_run_end_date_gt: tools.dag_run_end_date_gt
dag_run_end_date_lte: tools.dag_run_end_date_lte
dag_run_end_date_lt: tools.dag_run_end_date_lt
dag_run_state: tools.dag_run_state
order_by: tools.order_by
is_favorite: tools.is_favorite
timetable_type: tools.timetable_type
outputParameters:
- type: object
mapping: $.
- name: airflow-patch-dags
description: Airflow Patch Dags
hints:
readOnly: false
destructive: false
idempotent: true
call: airflow-dag.patchdags
with:
update_mask: tools.update_mask
limit: tools.limit
offset: tools.offset
tags: tools.tags
tags_match_mode: tools.tags_match_mode
owners: tools.owners
dag_id_pattern: tools.dag_id_pattern
exclude_stale: tools.exclude_stale
paused: tools.paused
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: airflow-get-dag
description: Airflow Get Dag
hints:
readOnly: true
destructive: false
idempotent: true
call: airflow-dag.getdag
with:
dag_id: tools.dag_id
outputParameters:
- type: object
mapping: $.
- name: airflow-patch-dag
description: Airflow Patch Dag
hints:
readOnly: false
destructive: false
idempotent: true
call: airflow-dag.patchdag
with:
dag_id: tools.dag_id
update_mask: tools.update_mask
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: airflow-delete-dag
description: Airflow Delete Dag
hints:
readOnly: false
destructive: true
idempotent: true
call: airflow-dag.deletedag
with:
dag_id: tools.dag_id
outputParameters:
- type: object
mapping: $.
- name: airflow-get-dag-details
description: Airflow Get Dag Details
hints:
readOnly: true
destructive: false
idempotent: true
call: airflow-dag.getdagdetails
with:
dag_id: tools.dag_id
outputParameters:
- type: object
mapping: $.
- name: airflow-favorite-dag
description: Airflow Favorite Dag
hints:
readOnly: false
destructive: false
idempotent: false
call: airflow-dag.favoritedag
with:
dag_id: tools.dag_id
outputParameters:
- type: object
mapping: $.
- name: airflow-unfavorite-dag
description: Airflow Unfavorite Dag
hints:
readOnly: false
destructive: false
idempotent: false
call: airflow-dag.unfavoritedag
with:
dag_id: tools.dag_id
outputParameters:
- type: object
mapping: $.