Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Airflow

FreeNot checked

MCP server exposing Apache Airflow REST API operations as tools — list DAGs, inspect runs and task instances, trigger DAG runs, and check failed DAGs and schedu

GitHubEmbed

About

MCP server exposing Apache Airflow REST API operations as tools — list DAGs, inspect runs and task instances, trigger DAG runs, and check failed DAGs and scheduler health

README

MCP server that exposes Apache Airflow REST API operations as tools. Built with FastMCP.

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

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

License

MIT

from github.com/antonio-mello-ai/mcp-airflow

Installing Airflow

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/antonio-mello-ai/mcp-airflow

FAQ

Is Airflow MCP free?

Yes, Airflow MCP is free — one-click install via Unyly at no cost.

Does Airflow need an API key?

No, Airflow runs without API keys or environment variables.

Is Airflow hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Airflow in Claude Desktop, Claude Code or Cursor?

Open Airflow on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Airflow with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All productivity MCPs