Airflow

io.github.us-allPublished by GitHub account us-allv1.4.1Updated Oct 25, 2026

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

Overview

AI-generated overview

An MCP server for Apache Airflow 3.x that lets an assistant list DAGs, runs and task instances, tail logs, and optionally trigger or clear tasks.

What you can do
List active DAGs with tag and search filters, and list recent runs of a DAG with state filtering, newest first. Retrieve task instances for a specific DAG run and tail the last kilobytes of a task instance log. Get an aggregated DAG health rollup with success rate, average duration, last failed run and failing tasks. When writes are enabled, trigger a new DAG run and clear task instances so they re-run. Discover tools by natural-language search and use built-in prompts for DAG failure triage and schedule audits.
When to use it
Useful when you operate Airflow pipelines and want an assistant to inspect DAG state, diagnose failures from logs, or check success rates across DAGs without opening the Airflow UI. Add it when you need occasional trigger or clear actions from a chat client, with writes deliberately enabled.
Requirements
Runs as a local Node.js process via the npm package. Needs AIRFLOW_API_URL (host base only), AIRFLOW_USERNAME and AIRFLOW_PASSWORD to mint a JWT through SimpleAuthManager, plus network access to the Airflow instance. Targets Airflow 3.x /api/v2; Airflow 2.x requires pinning an older package version.
Before you install
AIRFLOW_PASSWORD is a secret sent to the Airflow host to obtain a token. Setting AIRFLOW_ALLOW_WRITE=true enables trigger-dag and clear-task, which start and re-run pipeline work; leave it unset for read-only use. Clearing tasks can cause duplicate or unexpected runs. The server can also be switched to HTTP transport with Bearer auth.

Installation

In SourceWeft

  1. Open Airflow in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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

bash
pnpm add -D @us-all/airflow-mcp

Run

bash
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/[email protected] 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

bash
pnpm installpnpm run build      # tsc → dist/pnpm test           # vitestpnpm run smoke      # spawns dist/index.js, calls initialize + tools/list (set env first)

License

MIT — see LICENSE.

Source: README.md at commit 486363a

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.4.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts