Skip to main content
Glama
airflow-mcp-server

airflow-mcp-server

by us-all

@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 + meta categories

  • 2 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-mcp

Related MCP server: Apache Airflow MCP Server

Run

AIRFLOW_API_URL=http://airflow.example.com:8080 \
AIRFLOW_USERNAME=admin AIRFLOW_PASSWORD=... \
npx @us-all/airflow-mcp

Pass 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

airflow-list-dags

List active DAGs with tag/search filters

airflow-list-runs

Recent runs of one DAG (state filter, ordered newest first)

airflow-get-task-instances

Task instances for a specific DAG run

airflow-get-task-logs

Tail (last N kB) of one task instance log

airflow-trigger-dag

Trigger a new run (write-gated)

airflow-clear-task

Clear specific task instances → re-run (write-gated)

dag-health-rollup

Aggregated DAG health: success rate + avg duration + last failed run + failing tasks

meta

search-tools — natural-language tool discovery.

Prompts

Prompt

Use when

dag-failure-triage

"Why did DAG X fail?" — pulls runs, isolates failure, dumps logs, proposes remediation

dag-schedule-audit

"Sweep all DAGs for low success rate and stuck runs"

Environment variables

Env

Required

Notes

AIRFLOW_API_URL

yes

Airflow host base, e.g. http://airflow.example.com:8080. Trailing /api/v1 or /api/v2 is stripped if present

AIRFLOW_USERNAME

yes

Username for JWT minting via SimpleAuthManager /auth/token

AIRFLOW_PASSWORD

yes

Password for JWT minting (secret)

AIRFLOW_ALLOW_WRITE

no

true enables airflow-trigger-dag / airflow-clear-task

AIRFLOW_TOOLS / AIRFLOW_DISABLE

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/v1 were removed; pin to @us-all/airflow-mcp@0.1.0 for 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 tools
airflow-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

    A3.6/5.0

    Scored across 8 tools

    Disambiguation4/5

    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.

    Naming Consistency3/5

    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.

    Tool Count5/5

    Eight tools is well-scoped for an Airflow operations server. Each tool covers a meaningful operation without redundancy or bloat.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Enables 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.
      16
      56 PyPI
      2
      Apache 2.0
    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      An 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