Skip to main content
Glama
Mhdd-24

@mhdd_24/airflow-mcp

by Mhdd-24
README.md
# @mhdd_24/airflow-mcp

MCP server for DAGs, runs, logs and task failures.

Same architecture as [@mhdd_24/sublime-mcp](https://github.com/Mhdd-24/Sublime-MCP).

**Full documentation:** [docs/WIKI.md](./docs/WIKI.md)

---

## How it works (30 seconds)

```
You (chat) → MCP client → airflow-mcp → Airflow APIs / CLIs / local tools
```

---

## Prerequisites

| Requirement | Notes |
|-------------|--------|
| **Node.js 18+** | ESM TypeScript MCP server |
| **Credentials / CLIs** | See environment variables below |

---

## Install

### Option A — npm (after publish)

```bash
npm install -g @mhdd_24/airflow-mcp
```

### Option B — npx

```bash
npx @mhdd_24/airflow-mcp
```

### Option C — clone and build

```bash
git clone https://github.com/Mhdd-24/Airflow-MCP.git
cd Airflow-MCP
npm install
npm run build
node dist/index.js
```

---

## Configure Cursor

Edit `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "airflow": {
      "command": "npx",
      "args": ["-y", "@mhdd_24/airflow-mcp"],
      "env": {
        "AIRFLOW_BASE_URL": "...",
        "AIRFLOW_USERNAME": "...",
        "AIRFLOW_PASSWORD": "..."
      }
    }
  }
}
```

**Local development:**

```json
{
  "command": "node",
  "args": ["/absolute/path/to/Airflow-MCP/dist/index.js"]
}
```

---

## Environment variables

| Variable | Description |
|----------|-------------|
| `AIRFLOW_BASE_URL` | Airflow URL |
| `AIRFLOW_USERNAME` | User |
| `AIRFLOW_PASSWORD` | Password |

---

## Tools

| Tool | Description |
|------|-------------|
| `airflow_status` | Show dags configuration / health. |
| `airflow_list` | List dags resources/items. |
| `airflow_get` | Get a dags resource by id/name. |
| `airflow_diagnose` | Diagnostics / checklist for dags. |

---

## License

ISC

TDQS

B3/5.0

Scored across 4 tools

Disambiguation3/5

Most tools are clearly distinct (list vs get vs status), but 'airflow_status' and 'airflow_diagnose' overlap in intent—both appear to inspect health or state, making it ambiguous which to choose for a given diagnostic question.

Naming Consistency4/5

All tools share the 'airflow_' prefix with snake_case, but 'airflow_status' uses a noun while the others use verbs (list, get, diagnose), creating a minor inconsistency in the naming pattern.

Tool Count5/5

Four tools is a tight, focused set for an Airflow-oriented server. Each tool addresses a distinct need and none feel redundant or superfluous.

Completeness3/5

The set covers read-only inspection and diagnostics well, but lacks common Airflow DAG operations like pause/unpause, trigger, or delete. If the intended scope is monitoring only, this is fine; for management tasks, there are notable gaps.