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 "Install 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-serverlist 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: MCP-Airflow-API
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.
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/us-all/airflow-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server