airflow-mcp-server
This server provides tools to interact with Airflow 3.x via its REST API, enabling both read access and write-gated actions for DAG and task management.
Core Tools
airflow-list-dags: Browse active DAGs with optional tag filtering, DAG ID substring search, and paused DAG exclusion.airflow-list-runs: Retrieve recent runs for a specific DAG, filterable by state (success, failed, running, etc.), ordered newest first.airflow-get-task-instances: Inspect all task instances within a DAG run, including state, try number, and duration.airflow-get-task-logs: Tail the last N kilobytes of a task instance's log for a specific try number — useful for debugging failures.dag-health-rollup: Aggregated health summary for a DAG including success rate, run count breakdown, average duration, last failed run, and failing task instances.airflow-trigger-dag(requiresAIRFLOW_ALLOW_WRITE=true): Trigger a new DAG run with optional conf payload, note, and logical date.airflow-clear-task(requiresAIRFLOW_ALLOW_WRITE=true): Clear specific task instances to force re-execution, with optional upstream/downstream inclusion.search-tools: Discover available tools via natural language queries.
Pre-built Prompts / Workflows
dag-failure-triage: Guided workflow to diagnose DAG failures — pulls runs, isolates the failure, dumps logs, and proposes remediation.dag-schedule-audit: Sweeps all DAGs to identify those with low success rates or stuck runs.
Auth & Transport
Authenticates via JWT (SimpleAuthManager) using
AIRFLOW_USERNAMEandAIRFLOW_PASSWORD; tokens are auto-refreshed.Supports stdio (default) or Streamable HTTP transport (
MCP_TRANSPORT=http).Compatible with Claude Desktop, Cursor, and any MCP client.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@airflow-mcp-server list all active DAGs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@us-all/airflow-mcp
Airflow MCP server — read DAGs, runs, task instances, log tails; trigger and clear (write-gated). Built on
@us-all/mcp-toolkit.
A focused MCP for the Airflow 3.x REST API (/api/v2). Read by default; airflow-trigger-dag and airflow-clear-task are gated behind AIRFLOW_ALLOW_WRITE=true. Auth is JWT via SimpleAuthManager — supply AIRFLOW_USERNAME + AIRFLOW_PASSWORD and the server mints/refreshes the token transparently.
For deeper dbt integration (manifest parsing, run-results history, source freshness, per-column test coverage, lineage walks, custom DQ result tables), install the companion @us-all/dbt-mcp alongside.
7 tools in
airflow+metacategories2 MCP Prompts for DAG triage workflows
1 aggregation tool that replaces the list-runs → get-task-instances combo
Install
pnpm add -D @us-all/airflow-mcpRelated MCP server: Apache Airflow MCP Server
Run
AIRFLOW_API_URL=http://airflow.example.com:8080 \
AIRFLOW_USERNAME=admin AIRFLOW_PASSWORD=... \
npx @us-all/airflow-mcpPass the host base only — the server prepends /api/v2 internally. A trailing /api/v1 or /api/v2 is stripped if supplied. JWT tokens are cached for the lifetime of the session and refreshed 1 minute before they expire.
The server speaks MCP stdio; wire it into Claude Desktop / Cursor / any MCP client. Set MCP_TRANSPORT=http to opt in to Streamable HTTP transport (Bearer auth, /health endpoint).
Tools
airflow (6 + 1 aggregation)
Tool | Description |
| List active DAGs with tag/search filters |
| Recent runs of one DAG (state filter, ordered newest first) |
| Task instances for a specific DAG run |
| Tail (last N kB) of one task instance log |
| Trigger a new run (write-gated) |
| Clear specific task instances → re-run (write-gated) |
| Aggregated DAG health: success rate + avg duration + last failed run + failing tasks |
meta
search-tools — natural-language tool discovery.
Prompts
Prompt | Use when |
| "Why did DAG X fail?" — pulls runs, isolates failure, dumps logs, proposes remediation |
| "Sweep all DAGs for low success rate and stuck runs" |
Environment variables
Env | Required | Notes |
| yes | Airflow host base, e.g. |
| yes | Username for JWT minting via SimpleAuthManager |
| yes | Password for JWT minting (secret) |
| no |
|
| no | Category toggles |
Tested-against schemas
Airflow 3.0–3.2
/api/v2(verified against 3.2.1, current Airflow release as of 2026-05). Airflow 2.x is not supported by v0.2+ because basic auth +/api/v1were removed; pin to@us-all/airflow-mcp@0.1.0for Airflow 2.x deployments.
Companion server
For dbt artifact parsing, run-results history, and DQ result tables, install @us-all/dbt-mcp alongside.
Build
pnpm install
pnpm run build # tsc → dist/
pnpm test # vitest
pnpm run smoke # spawns dist/index.js, calls initialize + tools/list (set env first)License
MIT — see LICENSE.
Available Tools
8 toolsairflow-clear-taskA
Clear specific task instances in an Airflow DAG run (re-run them); supports include_upstream / include_downstream. Write-gated by AIRFLOW_ALLOW_WRITE.
Inputs: dagId (required), dagRunId (required), taskIds (required), includeDownstream, +1 more.
airflow-get-task-instancesB
List task instances for a specific Airflow DAG run with state, try_number, duration
Inputs: dagId (required), dagRunId (required), extractFields.
airflow-get-task-logsB
Fetch the tail (last N kB) of an Airflow task instance log for a specific try_number
Inputs: dagId (required), dagRunId (required), taskId (required), tryNumber, +2 more.
airflow-list-dagsB
List Airflow DAGs (active by default) with optional tag filter and dag_id substring search
Inputs: onlyActive, tag, search, limit, +1 more.
airflow-list-runsA
List recent runs of one Airflow DAG, optionally filtered by state, ordered newest first
Inputs: dagId (required), state, limit, extractFields.
airflow-trigger-dagA
Trigger a new Airflow DAG run with optional conf payload and note. Write-gated by AIRFLOW_ALLOW_WRITE.
Inputs: dagId (required), dagRunId, conf, note, +1 more.
dag-health-rollupA
Aggregated DAG health: success-rate over the last N runs + count breakdown (succeeded/failed/queued) + average duration + last-failed-run id + (optional) failing task instances. Replaces the airflow-list-runs + airflow-get-task-instances combo for 'is this DAG healthy right now?'.
Inputs: dagId (required), recentRuns, includeFailingTasks, extractFields.
search-toolsA
Discover available Airflow MCP tools by natural language query.
Inputs: query (required), category, limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Each tool maps to a distinct resource/action: DAGs, runs, task instances, logs, aggregate health, and tool discovery. dag-health-rollup and airflow-list-runs could overlap for health questions, but the description explicitly positions the rollup as the higher-level replacement, so ambiguity remains low.
Most tools follow the airflow-<verb>-<object> pattern (airflow-list-dags, airflow-trigger-dag, airflow-clear-task, airflow-list-runs, airflow-get-task-instances, airflow-get-task-logs), but dag-health-rollup and search-tools break both the airflow- prefix and the verb-noun convention. There is also minor inconsistency between 'list' and 'get' for similar retrieval operations.
Eight tools is well-scoped for an Airflow operations server. Each tool covers a meaningful operation without redundancy or bloat.
The set covers the core operational workflow: discover DAGs, trigger runs, inspect runs/task instances/logs, clear tasks, and get an aggregated health rollup. Minor gaps like pause/unpause DAGs or fetching DAG details exist, but they do not break the primary monitoring and troubleshooting use case.
Maintenance
Related MCP Connectors
Official Airtable MCP server — database and operations layer for agents.
Streamable HTTP MCP server exposing planner flows, tasks, and squads.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Argentic MCP server: run and inspect long-running agents on Argentic.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables inspection and management of Apache Airflow DAGs, runs, and logs across multiple instances. It provides tools for monitoring workflows and performing gated write operations like triggering DAGs or clearing task instances.1656 PyPI2Apache 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
- AlicenseAqualityBmaintenanceMCP 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 health72MIT
- FlicenseNot gradedqualityDmaintenanceEnables DAG management, monitoring, debugging, and connection testing for Apache Airflow through the MCP protocol.-