MCP Airflow

Community Health

Manage Apache Airflow via its REST API: list DAGs, inspect runs and task instances, trigger runs, and check failed DAGs and scheduler health.

Install

The installation steps are in the documentation below. Documentation

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. Install
  2. Configuration
  3. Usage
  4. Tools
  5. Tests
  6. Documentation
  7. License

title: MCP Airflow kind: source_doc area: engineering project: mcp-airflow collection: mcp-airflow owner: maintainers status: current canonical: README.md globalRef: qmd://mcp-airflow/README.md reviewCadenceDays: 90 lastReviewedAt: 2026-09-28 sourceRefs:

  • pyproject.toml related:
  • AGENTS.md
  • docs/fluxos-negocio.md
  • docs/arquitetura.md
  • docs/operacao.md
  • docs/index.md supersedes: [] supersededBy: [] sensitivity: public --- # mcp-airflow

MCP server that exposes Apache Airflow REST API operations as tools. Built with the FastMCP API from the MCP Python SDK.

This is an open-source package. The maintainers do not operate a public hosted Airflow endpoint through this repository.

Install

# Run directly with uvx (no install needed)
uvx mcp-airflow

# Or install with pip
pip install mcp-airflow

For development:

uv pip install -e ".[dev]"
# or with dependency groups
uv sync --group dev

Configuration

Set these environment variables (or create a .env file from .env.example):

VariableDescriptionExample
AIRFLOW_BASE_URLAirflow REST API base URL. Use /api/v2 for Airflow 3.x or /api/v1 for 2.xhttp://100.x.x.x:8080/api/v2
AIRFLOW_USERNAMEAuth username (JWT on 3.x, basic auth on 2.x)admin
AIRFLOW_PASSWORDAuth password
Authentication

The client picks the auth scheme automatically based on your Airflow version:

  • Airflow 3.x (JWT) — a JWT token is obtained from the /auth/token endpoint using AIRFLOW_USERNAME/AIRFLOW_PASSWORD, sent as a Bearer token, and refreshed automatically. Point AIRFLOW_BASE_URL at /api/v2.
  • Airflow 2.x (basic auth) — if the JWT flow is unavailable, the client falls back to HTTP basic auth with the same username/password. Point AIRFLOW_BASE_URL at /api/v1.

Usage

Run the server:

mcp-airflow

Or add to your MCP client config (e.g., Claude Desktop):

{
  "mcpServers": {
    "airflow": {
      "command": "mcp-airflow",
      "env": {
        "AIRFLOW_BASE_URL": "http://100.x.x.x:8080/api/v2",
        "AIRFLOW_USERNAME": "admin",
        "AIRFLOW_PASSWORD": "your-password"
      }
    }
  }
}

Tools

ToolDescription
list_dagsList all DAGs with paused/active status
get_dag_runs_todayGet all DAG runs from today with status
get_dag_run_statusGet the latest run status for a specific DAG
trigger_dag_runTrigger a manual DAG run
get_task_instancesGet task instances for a specific DAG run
check_failed_dagsCheck for failed DAGs in the last 24 hours
check_scheduler_healthCheck scheduler heartbeat and metadatabase status

Tests

pytest

Documentation

Start at docs/index.md for the supported flows, architecture, operational guidance, and security boundary.

Roadmap and delivery status live in GitHub Issues and pull requests.

License

MIT

Frequently asked questions

What is MCP Airflow?

Manage Apache Airflow via its REST API: list DAGs, inspect runs and task instances, trigger runs, and check failed DAGs and scheduler health.

How do I install MCP Airflow?

Follow the installation steps in its documentation, shown on this page and in its repository.

Is MCP Airflow open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains MCP Airflow?

It is published by antonio-mello-ai. AI.tn lists it but does not maintain or endorse it.

From the community awesome-mcp-servers lists and the project's GitHub repository. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.