Back to Browse

Airflow MCP Server

by Us All
Data & AnalyticsLow Risk9.8MCP RegistryLocal
Free

Server data from the Official MCP Registry

Airflow MCP — list DAGs/runs/task instances, tail logs, trigger and clear (write-gated)

About

Airflow MCP — list DAGs/runs/task instances, tail logs, trigger and clear (write-gated)

Security Report

9.8
Low Risk9.8Low Risk

Valid MCP server (1 strong, 1 medium validity signals). 1 code issue detected. No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry. Trust signals: trusted author (10/10 approved).

5 files analyzed · 2 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Airflow host base, e.g. 'http://airflow.example.com:8080'. Server prepends /api/v2 internally; trailing /api/v1 or /api/v2 is stripped if supplied.Optional

Environment variable: AIRFLOW_API_URL

Airflow username (used to mint a JWT via SimpleAuthManager /auth/token).Optional

Environment variable: AIRFLOW_USERNAME

Airflow password (used to mint a JWT via SimpleAuthManager /auth/token).Required

Environment variable: AIRFLOW_PASSWORD

Set to 'true' to enable trigger-dag and clear-task tools. Default read-only.Optional

Environment variable: AIRFLOW_ALLOW_WRITE

Comma-separated category allowlist (airflow,meta).Optional

Environment variable: AIRFLOW_TOOLS

Comma-separated category disablelist.Optional

Environment variable: AIRFLOW_DISABLE

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-us-all-airflow": {
      "env": {
        "AIRFLOW_TOOLS": "your-airflow-tools-here",
        "AIRFLOW_API_URL": "your-airflow-api-url-here",
        "AIRFLOW_DISABLE": "your-airflow-disable-here",
        "AIRFLOW_PASSWORD": "your-airflow-password-here",
        "AIRFLOW_USERNAME": "your-airflow-username-here",
        "AIRFLOW_ALLOW_WRITE": "your-airflow-allow-write-here"
      },
      "args": [
        "-y",
        "@us-all/airflow-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

@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

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)

ToolDescription
airflow-list-dagsList active DAGs with tag/search filters
airflow-list-runsRecent runs of one DAG (state filter, ordered newest first)
airflow-get-task-instancesTask instances for a specific DAG run
airflow-get-task-logsTail (last N kB) of one task instance log
airflow-trigger-dagTrigger a new run (write-gated)
airflow-clear-taskClear specific task instances → re-run (write-gated)
dag-health-rollupAggregated DAG health: success rate + avg duration + last failed run + failing tasks

meta

search-tools — natural-language tool discovery.

Prompts

PromptUse 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

EnvRequiredNotes
AIRFLOW_API_URLyesAirflow host base, e.g. http://airflow.example.com:8080. Trailing /api/v1 or /api/v2 is stripped if present
AIRFLOW_USERNAMEyesUsername for JWT minting via SimpleAuthManager /auth/token
AIRFLOW_PASSWORDyesPassword for JWT minting (secret)
AIRFLOW_ALLOW_WRITEnotrue enables airflow-trigger-dag / airflow-clear-task
AIRFLOW_TOOLS / AIRFLOW_DISABLEnoCategory 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.

Reviews

No reviews yet

Be the first to review this server!

Airflow MCP Server - Airflow MCP — list DAGs/runs/task instances, tail logs, | MCP Marketplace