mcp-airflow
mcp-airflow is an MCP server that exposes Apache Airflow REST API operations as tools, letting you monitor, inspect, and trigger Airflow DAGs from any MCP client.
List DAGs (
list_dags) — see every registered DAG with its paused/active status.Review today's runs (
get_dag_runs_today) — get all DAG runs started on the current UTC date, grouped by status (success, failed, running, queued).Check a specific DAG (
get_dag_run_status) — look up the state, execution date, and duration of the latest run for a givendag_id.Trigger runs (
trigger_dag_run) — manually kick off a DAG run bydag_idand get back the new run ID and state.Inspect task-level detail (
get_task_instances) — list the tasks within a specific DAG run (dag_id+run_id) with state, duration, and operator.Find failures (
check_failed_dags) — surface DAGs with at least one failed run in the past 24 hours, including execution dates.Monitor infrastructure (
check_scheduler_health) — check scheduler status and latest heartbeat via the/healthendpoint.
Supports Airflow 3.x (JWT) and 2.x (basic auth), selecting the auth scheme automatically from the configured AIRFLOW_BASE_URL.
Allows interaction with Apache Airflow REST API, providing tools to list DAGs, get DAG runs, trigger runs, check task instances, and monitor scheduler health.
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-airflowFor development:
uv pip install -e ".[dev]"
# or with dependency groups
uv sync --group devRelated MCP server: astro-airflow-mcp
Configuration
Set these environment variables (or create a .env file from .env.example):
Variable | Description | Example |
| Airflow REST API base URL. Use |
|
| Auth username (JWT on 3.x, basic auth on 2.x) |
|
| 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-airflowOr 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 all DAGs with paused/active status |
| Get all DAG runs from today with status |
| Get the latest run status for a specific DAG |
| Trigger a manual DAG run |
| Get task instances for a specific DAG run |
| Check for failed DAGs in the last 24 hours |
| Check scheduler heartbeat and metadatabase status |
Tests
pytestDocumentation
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 toolscheck_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
Scored across 7 tools
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.
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.
7 tools is well-scoped for an Airflow monitoring/management server. It covers essential operations without being excessive or minimal.
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
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Open-source Zapier/n8n alternative as an MCP server: agents build, run and debug your workflows.
MCP-Native LLM Orchestration Agent
Related MCP Servers
- AlicenseCqualityBmaintenanceMonitor 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-5dfdfb25454MIT

astro-airflow-mcpofficial
AlicenseAqualityFmaintenanceAn 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.3113Apache 2.0- AlicenseNot gradedqualityNot gradedmaintenanceAn 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
- FlicenseNot gradedqualityDmaintenanceEnables DAG management, monitoring, debugging, and connection testing for Apache Airflow through the MCP protocol.-