Airflow MCP tools reference
Airflow MCP has 33 tools that AI clients can call to view, run, troubleshoot and create Airflow DAGs. This topic lists each tool, what it does, and whether it can change or delete data.
Tool types
Each tool tells the AI client what kind of action it takes, using the MCP
readOnlyHint and destructiveHint labels.
Clients can use these labels to decide when to ask you for approval.
| Type | Labels | What it means | Number of tools |
| Read-only | readOnlyHint=true,
destructiveHint=false |
Only reads information. Changes nothing. | 24 |
| Changes data | readOnlyHint=false,
destructiveHint=false |
Changes state, but only by adding something or in a way you can undo | 5 |
| Destructive | destructiveHint=true |
Can delete, overwrite or reset existing data | 4 |
Environment tools
| Tool | Description | Type |
getAirflowVersion |
Gets the version of the Airflow instance. | Read-only |
listConnections |
Lists the connections Airflow uses for external systems. | Read-only |
getVariable |
Gets one Airflow variable by its key. | Read-only |
listVariables |
Lists all Airflow variables (key-value settings). | Read-only |
getPool |
Gets details about one resource pool: its name, slot count, occupied, queued and running slots, and description. | Read-only |
listPools |
Lists the resource pools that control how many tasks can run at once. | Read-only |
listProviders |
Lists the Airflow provider packages that are installed. | Read-only |
Asset tools
| Tool | Description | Type |
listAssets |
Lists the data assets and datasets Airflow tracks for data lineage. | Read-only |
listAssetEvents |
Lists asset and dataset events. You can filter the results. | Read-only |
getUpstreamAssetEvents |
Gets the asset events that started a particular DAG run. | Read-only |
Airflow DAG tools
| Tool | Description | Type |
listDags |
Lists all Airflow DAGs. | Read-only |
getDag |
Gets details about one DAG: its schedule, owner, tags, file location and whether it's paused. | Read-only |
getDagSource |
Gets the source code of a DAG. | Read-only |
getDagStats |
Gets DAG run statistics, such as success and failure counts by state. | Read-only |
pauseDag |
Pauses a DAG so no new scheduled runs start. | Changes data |
unpauseDag |
Unpauses a DAG so its scheduled runs start again. | Changes data |
pauseDag and unpauseDag are idempotent: calling one
of them again on a DAG that's already in that state doesn't change anything.
Airflow DAG run tools
| Tool | Description | Type |
listDagRuns |
Lists past DAG runs and their status. | Read-only |
getDagRun |
Gets details about one DAG run: its state, start and end times, configuration and notes. | Read-only |
triggerDag |
Starts a new DAG run manually. | Changes data |
triggerDagAndWait |
Starts a new DAG run and waits for it to finish before returning. | Changes data |
clearDagRun |
Clears a DAG run so all its tasks run again. | Destructive |
deleteDagRun |
Deletes a DAG run permanently. | Destructive |
- Before starting a DAG run, Airflow MCP checks that the
run_as_userset on the DAG and its tasks matches your identity. If it does not match, the request is rejected. - You cannot undo
deleteDagRun. Before you approve it, check which DAG and run the AI client wants to delete.
Task tools
| Tool | Description | Type |
listTasks |
Lists all the tasks in a DAG. | Read-only |
getTask |
Gets details about one task in a DAG: its operator type, dependencies and settings. | Read-only |
getTaskInstance |
Gets details about one run of a task: its state, start and end times, try number and other details. | Read-only |
getTaskLogs |
Gets the logs for one run of a task. | Read-only |
clearTaskInstances |
Clears task runs so they are tried again. | Destructive |
Diagnostic tools
These tools find problems, and some of them combine several lookups into one call.
| Tool | Description | Type |
diagnoseDagRun |
Looks into one DAG run. Returns the run details, every task run,
and a summary of tasks in the failed or
upstream_failed state. |
Read-only |
exploreDag |
Gathers everything about a DAG in one call: its details (schedule, owners, tags, whether it's paused), all its tasks with their operators and dependencies, and its source code. | Read-only |
listDagWarnings |
Lists warnings and problems found in DAG definitions. | Read-only |
listImportErrors |
Lists errors from DAG files that couldn't be read or loaded. | Read-only |
diagnoseDagRun or
exploreDag. They return in one call what would otherwise take
several calls.Airflow DAG creation tools
| Tool | Description | Type |
reviewDagForUpload |
Saves the proposed DAG Python code to a temporary staging
file and returns a short-lived reviewToken. You
then need to approve the code and the file name it will be saved
as. Nothing is sent to Airflow at this step. |
Changes data |
uploadDag |
Uses the reviewToken to upload the approved
DAG to Airflow's /dags/upload REST
endpoint. |
Destructive |
uploadDag is labeled destructive because it can overwrite an
existing DAG file that has the same name. Check the file name before you approve the
upload.
Example prompts
| Prompt | Tools the client is likely to call |
| "What version of Airflow is running?" | getAirflowVersion |
| "Show me all paused DAGs." | listDags |
"Why did last night's run of sales_etl
fail?" |
listDagRuns,
diagnoseDagRun,
getTaskLogs |
"Explain what the customer_ingest DAG
does." |
exploreDag |
"Run sales_etl and tell me when it's
done." |
triggerDagAndWait |
"Retry the failed tasks in the latest
sales_etl run." |
diagnoseDagRun,
clearTaskInstances |
| "Which DAGs have import errors?" | listImportErrors |
| "Write a DAG that runs a daily Spark job, and upload it." | reviewDagForUpload, then
uploadDag after you approve |
The tools that actually get called depend on the AI client and the model.