# antonio-mello-ai/mcp-airflow [Health: Active]

**Category:** 📊 Data Platforms  
**Repository:** https://github.com/antonio-mello-ai/mcp-airflow  
**GitHub Stars:** 2  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/antonio-mello-ai-mcp-airflow

## Description
Manage Apache Airflow through its REST API — list DAGs, inspect DAG runs and task instances, trigger runs, and check failed-DAG and scheduler/metadatabase health. 7 tools, built with FastMCP. Install: uvx mcp-airflow.

## Tools
Capabilities this server exposes over MCP:

- **list_dags** — List all DAGs with their paused/active status.

    Returns a summary of every DAG registered in Airflow, including
    the dag_id, whether it is paused, and whether it is active.
    
- **get_dag_runs_today** — Get all DAG runs from today with their status.

    Returns every DAG run that started on the current UTC date,
    grouped by status (success, failed, running, queued).
    
- **get_dag_run_status** — Get the latest run status for a specific DAG.

    Args:
        dag_id: The DAG identifier.

    Returns the state, execution date, and duration of the most recent run.
    
- **check_failed_dags** — Check for failed DAG runs in the last 24 hours.

    Returns a list of DAGs that had at least one failed run
    in the past 24 hours, with execution dates.
    
- **check_scheduler_health** — Check the Airflow scheduler health via the /health endpoint.

    Returns the scheduler status and latest heartbeat timestamp.
    
- **trigger_dag_run** — Trigger a manual DAG run.

    Args:
        dag_id: The DAG identifier to trigger.

    Returns confirmation with the new run ID and state.
    
- **get_task_instances** — Get individual task instances for a specific DAG run.

    Args:
        dag_id: The DAG identifier.
        run_id: The DAG run identifier.

    Returns the list of tasks with their state, duration, and operator.
    

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "mcp-airflow": {
    "command": "uvx",
    "args": ["mcp-airflow"],
    "env": {
      "AIRFLOW_BASE_URL": "",
      "AIRFLOW_USERNAME": "",
      "AIRFLOW_PASSWORD": ""
    }
  }
}
```

**Requires environment variables:** `AIRFLOW_BASE_URL`, `AIRFLOW_USERNAME`, `AIRFLOW_PASSWORD` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What antonio-mello-ai/mcp-airflow MCP server does

antonio-mello-ai/mcp-airflow MCP server connects an MCP client to an Apache Airflow instance through its REST API. It provides seven tools for inspecting workflow state and initiating a manual run. The read-oriented tools cover DAG inventory, current-day DAG runs, the latest run for a selected DAG, task instances within a run, failed DAGs from the previous 24 hours, and scheduler or metadatabase health.

The `trigger_dag_run` tool adds a write operation for manually starting a DAG run. This makes the package suitable for agents that need to answer operational questions and, where the connected Airflow account permits it, start a workflow without switching to the Airflow web interface.

## How it works

The package is implemented with the FastMCP API from the MCP Python SDK. It presents the listed operations as MCP tools while using the configured Airflow REST API as the backend; it does not provide or host an Airflow service itself.

For Airflow 3.x, point the client at the `/api/v2` API and provide credentials used to obtain a JWT from `/auth/token`. The resulting bearer token is refreshed automatically. For Airflow 2.x, point the base URL at `/api/v1`; when the JWT flow is unavailable, the client uses HTTP basic authentication with the same username and password.

## Setup and configuration

Install without a separate package step by running `uvx mcp-airflow`, or install the package with `pip install mcp-airflow`. After installation, the server can be started with `mcp-airflow`. A development setup is also documented through an editable install with the development dependency group, but that is intended for contributors rather than normal use.

The base URL must include the API path matching the Airflow version.

## Tools and capabilities

The seven exposed tools are:

- `list_dags`: returns DAGs with paused or active status.
- `get_dag_runs_today`: returns the day's DAG runs and their statuses.
- `get_dag_run_status`: reports the latest run status for a specified DAG.
- `trigger_dag_run`: starts a manual run for a DAG.
- `get_task_instances`: retrieves task instances for a selected DAG run.
- `check_failed_dags`: checks for DAG failures during the last 24 hours.
- `check_scheduler_health`: checks scheduler heartbeat and metadatabase status.

Together, these tools support common monitoring flows: finding available DAGs, checking whether today's runs completed, investigating tasks within a run, identifying recent failures, and checking core scheduler health. The tool set does not describe general Airflow administration beyond these operations.

## Limitations and notes

The repository does not operate a public hosted Airflow endpoint. You must provide access to an Airflow deployment and valid credentials through the configuration variables. The README distinguishes Airflow 3.x and 2.x by API path and authentication behavior, so using the matching base URL is part of setup.

The documented client example is for Claude Desktop. The package is licensed under MIT.

_Full upstream README: https://allmcps.com/mcp/antonio-mello-ai-mcp-airflow/readme_

