Skip to main content
Glama

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

Related MCP server: astro-airflow-mcp

Configuration

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

Variable

Description

Example

AIRFLOW_BASE_URL

Airflow REST API base URL. Use /api/v2 for Airflow 3.x or /api/v1 for 2.x

http://100.x.x.x:8080/api/v2

AIRFLOW_USERNAME

Auth username (JWT on 3.x, basic auth on 2.x)

admin

AIRFLOW_PASSWORD

Auth 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

Tool

Description

list_dags

List all DAGs with paused/active status

get_dag_runs_today

Get all DAG runs from today with status

get_dag_run_status

Get the latest run status for a specific DAG

trigger_dag_run

Trigger a manual DAG run

get_task_instances

Get task instances for a specific DAG run

check_failed_dags

Check for failed DAGs in the last 24 hours

check_scheduler_health

Check 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

Available Tools

7 tools
check_failed_dagsA

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.

Inputs: no named parameters. Returns: result

check_scheduler_healthA

Check the Airflow scheduler health via the /health endpoint.

Returns the scheduler status and latest heartbeat timestamp.

Inputs: no named parameters. Returns: result

get_dag_run_statusA

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.

Inputs: dag_id (required). Returns: result

get_dag_runs_todayA

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).

Inputs: no named parameters. Returns: result

get_task_instancesA

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.

Inputs: dag_id (required), run_id (required). Returns: result

list_dagsA

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.

Inputs: no named parameters. Returns: result

trigger_dag_runA

Trigger a manual DAG run.

Args:
    dag_id: The DAG identifier to trigger.

Returns confirmation with the new run ID and state.

Inputs: dag_id (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 7 tools

    Disambiguation5/5

    Every tool targets a distinct aspect of Airflow (failed DAGs, scheduler health, specific DAG run status, today's runs, task instances, DAG listing, manual trigger). No two tools overlap in purpose.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with lowercase and underscores (e.g., check_failed_dags, get_dag_run_status). No deviations or mixed conventions.

    Tool Count5/5

    7 tools is well-scoped for an Airflow monitoring/management server. It covers essential operations without being excessive or minimal.

    Completeness4/5

    Covers core monitoring (health, DAG run status, task instances) and triggering. Missing pause/unpause, DAG details, or run deletion, but these are secondary for typical agent workflows.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      B
      maintenance
      Monitor and manage Apache Airflow clusters through natural language queries via MCP tools: DAG inspection, task monitoring, health checks, and cluster analytics without API complexity. * Guide: https://call518.medium.com/mcp-airflow-api-a-model-context-protocol-mcp-server-for-apache-airflow-5dfdfb2
      54
      54
      MIT
    • A
      license
      A
      quality
      F
      maintenance
      An MCP server that enables AI assistants to interact with Apache Airflow's REST API for DAG management, task monitoring, and system diagnostics. It provides comprehensive tools for triggering workflows, retrieving logs, and inspecting system health across Airflow 2.x and 3.x versions.
      31
      13
      Apache 2.0
    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      An MCP server that wraps the Apache Airflow REST API, enabling clients to manage DAGs, monitor task instances, and handle workflows through a standardized interface. It provides comprehensive access to Airflow features including DAG runs, variables, connections, and XComs.
      MIT