antonio-mello-ai/mcp-airflow
FreeNot checkedManage Apache Airflow through its REST API — list DAGs, inspect DAG runs and task instances, trigger runs, and check failed-DAG and scheduler/metadatabase healt
About
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.
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/tokenendpoint usingAIRFLOW_USERNAME/AIRFLOW_PASSWORD, sent as aBearertoken, and refreshed automatically. PointAIRFLOW_BASE_URLat/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_URLat/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
Install antonio-mello-ai/mcp-airflow in Claude Desktop, Claude Code & Cursor
unyly install antonio-mello-ai-mcp-airflowInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add antonio-mello-ai-mcp-airflow -- uvx mcp-airflowFAQ
Is antonio-mello-ai/mcp-airflow MCP free?
Yes, antonio-mello-ai/mcp-airflow MCP is free — one-click install via Unyly at no cost.
Does antonio-mello-ai/mcp-airflow need an API key?
No, antonio-mello-ai/mcp-airflow runs without API keys or environment variables.
Is antonio-mello-ai/mcp-airflow hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install antonio-mello-ai/mcp-airflow in Claude Desktop, Claude Code or Cursor?
Open antonio-mello-ai/mcp-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
Notion
Read and write pages in your workspace
by NotionLinear
Issues, cycles, triage — from Claude
by LinearGoogle Drive
Search and read your Drive files
by Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
by mindsdbCompare antonio-mello-ai/mcp-airflow with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All productivity MCPs
