Labsco
MCP SERVER

MCP Airflow Simple

by chayasin

Ask why a DAG failed, read the task log that explains it, and clear the run — over Airflow 3's REST API.

Data Platform: Pipelines, Warehousing, BI & Governance
Summary
The failed-DAG loop, without the web UI.

Find the DAG, find the run that failed, read the task log that explains it, then clear the run so it retries. In the Airflow UI that is four screens; here it is four calls in the window where you were already asking the question.

What it is

A Python MCP server for Apache Airflow 3, talking to REST API v2. Its tools list DAGs and their tasks, trigger and clear runs, pause and unpause a DAG, and read run history, task instances, logs and import errors.

What you get
  • All DAGs listed with filters, and the tasks inside one of them
  • A DAG run triggered, with optional run configuration
  • A failed DAG run cleared so it retries
  • A DAG paused or unpaused by setting its state
  • Run history, task instances and aggregate statistics for a DAG
  • The execution log for a task instance
  • The DAG import and parsing errors Airflow is currently reporting
Requirements

A reachable Airflow 3 instance and a .env holding airflow_baseurl and airflow_api_url. Authentication prefers a JWT in airflow_jwt_token — get one by posting your username and password to /auth/token on your Airflow URL — and falls back to airflow_username and airflow_password. Python dependencies come from requirements.txt.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary